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

N0x0n,

Thank your for the write up 😁 Glad you solved your issue !!

lemmyreader,

Nice. Can you edit the subject from your post and add the word howto or guide or something ? That could be nicer for people searching for solutions.

Tiritibambix,
@Tiritibambix@lemmy.ml avatar

Done

  • All
  • Subscribed
  • Moderated
  • Favorites
  • selfhosted@lemmy.world
  • ethstaker
  • DreamBathrooms
  • cisconetworking
  • magazineikmin
  • InstantRegret
  • Durango
  • thenastyranch
  • Youngstown
  • rosin
  • slotface
  • mdbf
  • khanakhh
  • kavyap
  • everett
  • megavids
  • GTA5RPClips
  • Leos
  • cubers
  • ngwrru68w68
  • osvaldo12
  • tester
  • tacticalgear
  • modclub
  • anitta
  • normalnudes
  • provamag3
  • JUstTest
  • lostlight
  • All magazines