colinmeinke / ghost-storage-adapter-s3

An AWS S3 storage adapter for Ghost
Other
183 stars 87 forks source link

Ghost 5 Dockerfile #100

Open bird-in-hat opened 2 years ago

bird-in-hat commented 2 years ago

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
mnebuerquo commented 2 years ago

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.

lakshminarasimmanv commented 2 years ago

ENV storage__active s3

Thanks! This works for me!

laosb commented 1 year ago

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
imzedi commented 1 week ago

@laosb I used the same as you have mentioned but its throwing me error ": Unable to find storage adapter s3 in ,/var/lib/ghost/content/adapters/,/var/lib/ghost/versions/5.94.2/core/server/adapters/"

I checked in my image there are files in current/core/server/adapters/storage/s3