Skip to content
Splines edited this page Nov 6, 2023 · 6 revisions

We use Docker as virtualization engine. It allows us to share the same environments across multiple PCs and to easily scale our production system (add more workers). Docker compose is used to manage our multi-container application.

Services

TODO, e.g. explain what the task of the individual services is.

Useful commands

docker ps  # See containers
docker volume ls  # See volumes

Stop and remove all containers including volumes.

docker compose down --volumes  # or -v as shorthand

Recreate one service (stop container, delete volume and start it again). From here:

docker compose rm -svf <service> && docker-compose up -d <service>

Volume still not removed? You might have to delete it manually as described here:

docker compose rm -sf <service>
docker volume ls
docker volume rm <volume>

Get a shell to the running mampf container in local development:

docker exec -it $(docker ps -qf "name=development-mampf") bash

Repopulate the public volume without rebuilding any images.

docker compose rm -s nginx
docker compose rm -s mampf
docker compose rm -s webpacker
docker volume remove development_public
docker compose up -d

Rebuild the services mampf and webpacker which are frequently altered (compared to other services).

docker compose rm -s mampf
docker compose rm -s webpacker
docker compose build mampf webpacker
docker compose up -d

Remove literally everything. On Windows, you will have to use the Clean/Purge data button in Docker Desktop as this command will not give you the memory back immediately.

docker-compose down --rmi all -v --remove-orphans  # ⚠ dangerous

Copy a file from a Docker container to the host system.

docker cp <container-name>:/path/in/container.json /path/on/host
Clone this wiki locally