Guide: How to run MediaCMS with Docker
This is a followup to my previous post.
If you want to bind volumes outside of Docker, this is what you need to do.
There was a huge permission and volume mapping problem. I mention github issues that helped me here.
I hope that will help noobs and insecure people like me.
<span style="color:#62a35c;">cd</span><span style="color:#323232;"> /srv/path/Files
</span>
<span style="color:#323232;">git clone https://github.com/mediacms-io/mediacms
</span>
<span style="color:#62a35c;">cd</span><span style="color:#323232;"> /srv/path/Files/mediacms
</span>
<span style="color:#323232;">mkdir postgres_data
</span><span style="color:#323232;">&& chmod -R 755 postgres_data
</span>
<span style="color:#323232;">nano docker-compose.yaml
</span>
<span style="color:#63a35c;">version</span><span style="color:#323232;">: </span><span style="color:#183691;">"3"
</span><span style="color:#323232;">
</span><span style="color:#63a35c;">services</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">redis</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">image</span><span style="color:#323232;">: </span><span style="color:#183691;">"redis:alpine"
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">restart</span><span style="color:#323232;">: </span><span style="color:#183691;">always
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">healthcheck</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">test</span><span style="color:#323232;">: [</span><span style="color:#183691;">"CMD"</span><span style="color:#323232;">, </span><span style="color:#183691;">"redis-cli"</span><span style="color:#323232;">,</span><span style="color:#183691;">"ping"</span><span style="color:#323232;">]
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">interval</span><span style="color:#323232;">: </span><span style="color:#183691;">30s
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">timeout</span><span style="color:#323232;">: </span><span style="color:#183691;">10s
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">retries</span><span style="color:#323232;">: </span><span style="color:#0086b3;">3
</span><span style="color:#323232;">
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">migrations</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">image</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms/mediacms:latest
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">volumes</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/cms/settings.py
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">environment</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_UWSGI</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_NGINX</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_SHORT</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_LONG</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_BEAT</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ADMIN_USER</span><span style="color:#323232;">: </span><span style="color:#183691;">'admin'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ADMIN_EMAIL</span><span style="color:#323232;">: </span><span style="color:#183691;">'admin@localhost'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ADMIN_PASSWORD</span><span style="color:#323232;">: </span><span style="color:#183691;">'complicatedpassword'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">restart</span><span style="color:#323232;">: </span><span style="color:#183691;">on-failure
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">depends_on</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">redis</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">condition</span><span style="color:#323232;">: </span><span style="color:#183691;">service_healthy
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">web</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">image</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms/mediacms:latest
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">deploy</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">replicas</span><span style="color:#323232;">: </span><span style="color:#0086b3;">1
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ports</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">"8870:80" </span><span style="font-style:italic;color:#969896;">#whatever:80
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">volumes</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/cms/settings.py
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">environment</span><span style="color:#323232;">:
</span><span style="font-style:italic;color:#969896;"># ENABLE_UWSGI: 'no' #keep commented
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_BEAT</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_SHORT</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_LONG</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_MIGRATIONS</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;">
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">db</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">image</span><span style="color:#323232;">: </span><span style="color:#183691;">postgres:15.2-alpine
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">volumes</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/postgres_data:/var/lib/postgresql/data/
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">restart</span><span style="color:#323232;">: </span><span style="color:#183691;">always
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">environment</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">POSTGRES_USER</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">POSTGRES_PASSWORD</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">POSTGRES_DB</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">TZ</span><span style="color:#323232;">: </span><span style="color:#183691;">Europe/Paris
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">healthcheck</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">test</span><span style="color:#323232;">: [</span><span style="color:#183691;">"CMD-SHELL"</span><span style="color:#323232;">, </span><span style="color:#183691;">"pg_isready"</span><span style="color:#323232;">, </span><span style="color:#183691;">"--host=db"</span><span style="color:#323232;">, </span><span style="color:#183691;">"--dbname=$POSTGRES_DB"</span><span style="color:#323232;">, </span><span style="color:#183691;">"--username=$POSTGRES_USER"</span><span style="color:#323232;">]
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">interval</span><span style="color:#323232;">: </span><span style="color:#183691;">30s
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">timeout</span><span style="color:#323232;">: </span><span style="color:#183691;">10s
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">retries</span><span style="color:#323232;">: </span><span style="color:#0086b3;">5
</span><span style="color:#323232;">
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">celery_beat</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">image</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms/mediacms:latest
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">volumes</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/cms/settings.py
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">environment</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_UWSGI</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_NGINX</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_SHORT</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_LONG</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_MIGRATIONS</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;">
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">celery_worker</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">image</span><span style="color:#323232;">: </span><span style="color:#183691;">mediacms/mediacms:latest
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">deploy</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">replicas</span><span style="color:#323232;">: </span><span style="color:#0086b3;">1
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">volumes</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/deploy:/home/mediacms.io/mediacms/deploy
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/logs:/home/mediacms.io/mediacms/logs
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/media_files:/home/mediacms.io/mediacms/media_files
</span><span style="color:#323232;"> - </span><span style="color:#183691;">/srv/path/Files/mediacms/cms/settings.py:/home/mediacms.io/mediacms/cms/settings.py
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">environment</span><span style="color:#323232;">:
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_UWSGI</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_NGINX</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_CELERY_BEAT</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">ENABLE_MIGRATIONS</span><span style="color:#323232;">: </span><span style="color:#183691;">'no'
</span><span style="color:#323232;"> </span><span style="color:#63a35c;">depends_on</span><span style="color:#323232;">:
</span><span style="color:#323232;"> - </span><span style="color:#183691;">migrations
</span>
<span style="color:#323232;">docker-compose up -d
</span>
CSS will probably be missing because reasons, so bash into web
container
<span style="color:#323232;">docker exec -it mediacms_web_1 /bin/bash
</span>
Then
<span style="color:#323232;">python manage.py collectstatic
</span>
No need to reboot
Add comment