Docker orchestration for tinbox.
A work-in-progress overview of tinbox services and docker containers.
โญโโโโโโโโโโโโโโโโฎ
โ nginx โ
โโโโโโโโโโโโโโโโโก
โ app โโโโโโโโโโโโโ
โฐโโโโโโโโฌโโโโโโโโฏ โ
โ โ
โญโโโโโโโโโโโโโโโโฎ โญโโโโโโโโดโโโโโโโโฎ โญโโโโโโโโดโโโโโโโโฎ
(IMAP) โ mx โโโโโค api โ โ socker โ
โฐโโโโโโโโโโโโโโโโฏ โฐโโโฌโโโโโโโโโโฌโโโฏ โฐโโโโโโโโโโโโโฌโโโฏ
โ โ โ
โญโโโโโโโโโโโโโดโโโฎ โญโโโดโโโโโโโโโโโโโฎ โญโโโดโโโโโโโโโโโโโฎ โญโโโโโโโโโโโโโโโโฎ
โ postgres โ โ elasticsearch โ โ redis โ โ rabbitmq โ
โฐโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโฏ
โญโโโโโโโโโโโโโโโโฎ
โ www_data โ
โฐโโโโโโโโโโโโโโโโฏ
Build tinbox docker image:
cd <tinbox repo>
# --force-rm not required but handy if something goes wrong
docker build --force-rm -t tinbox_api .Build tinbox-mx docker image:
cd <tinbox-mx repo>
docker build --force-rm -t tinbox_mx .Build tinbox-app docker image:
cd <tinbox-app repo>
docker build --force-rm -t tinbox_app .Build remaining images (nginx, db, etc.):
cd <tinbox-docker repo>/tinbox
docker-compose build
mkdir -p /var/lib/docker/volumes/tinboxMigrate database and collect static assets
docker-compose run --rm api migrate --noinput
docker-compose run --rm api collectstatic --noinputStart everything:
docker-compose up -dFor most cases an image can just be rebuild via compose.
docker-compose up -d apiThis will rebuild/restart the api service along with dependent services, if needed.
Pass --force-recreate to force the image to be re-created.
Rebuild (only) nginx container to get new app container data:
docker-compose up --force-recreate --no-deps -d nginxRemove dangling images:
docker rmi $(docker images --quiet --filter "dangling=true")