ghost-storage-adapter-s3 icon indicating copy to clipboard operation
ghost-storage-adapter-s3 copied to clipboard

Ghost 5 Dockerfile

Open bird-in-hat opened this issue 2 years ago • 4 comments

I found out it works with ghost 5, but we have to upgrade packages aws-sdk and ghost-storage-base

FROM ghost:5.2.4-alpine AS ghost-base

RUN npm install --prefix /tmp/ghost-storage-adapter-s3 ghost-storage-adapter-s3 && \
    cp -r /tmp/ghost-storage-adapter-s3/node_modules/ghost-storage-adapter-s3 current/core/server/adapters/storage/s3 && \
    rm -r /tmp/ghost-storage-adapter-s3

RUN npm install ghost-storage-base && npm install aws-sdk

bird-in-hat avatar Jul 13 '22 14:07 bird-in-hat

I'd add this to the end of your Dockerfile, because I was missing this and the default config doesn't enable the adapter:

ENV storage__active s3

That cost me a few hours. The readme documents the other environment vars for the adapter configuration, as well as the config showing storage.active field. But unless you specifically overwrite the default config in the Dockerfile to add storage.active, your adapter won't be enabled with just the env variables documented in the readme.

mnebuerquo avatar Jul 22 '22 13:07 mnebuerquo

ENV storage__active s3

Thanks! This works for me!

lakshminarasimmanv avatar Aug 19 '22 09:08 lakshminarasimmanv

I made a modernized TypeScript fork of this one, using latest v3 version of AWS SDK & modern async / await syntax, so the workaround of upgrading packages is no longer needed. Adding in @mnebuerquo's tip, a more complete Dockerfile for recent versions of Ghost would be:

FROM ghost:5.5.0-alpine AS ghost-base

RUN npm install --prefix /tmp/ghos3 ghos3 && \
    cp -r /tmp/ghos3/node_modules/ghos3 current/core/server/adapters/storage/s3 && \
    rm -r /tmp/ghos3

laosb avatar Feb 18 '23 17:02 laosb