docker-compose
These are most of the docker-compose.yml files I use (with secrets removed, of course). Technology hates me just often enough that I have to keep multiple backups of everything because my shit gets rocked so often. :D
See Table-of-Services.md for what each of these does, as well as seeing what I've discarded because it sucks (or just isn't for me).
Most of these are designed to be run behind a reverse proxy, and I use Cosmos
for this. As a result, I often comment out ports declarations. Initial setup
should probably be shielded by the reverse proxy login.
Usage
- Put the
docker-compose.ymlfile where you want data to live. - Edit the file to set correct information based on the TODOs at the top.
- Run
docker-compose up -dbefore using any form of GUI. (If this step is skipped, volumes will not be set up correctly and you have to start over.)
Named bind mounts
Managing volumes that need to be shared within a config is easier if you can use names with bind mounts:
volumes:
name:
driver: local
driver_opts:
type: none
o: bind
device: /path/on/host
Remember that directories must be created before starting containers.
Standard reminder notes
I place these at the top of compose files for different changes that need to be made to use these files:
# TODO set volume directories: Named bind mount paths must be set (near top of file).# TODO change ALL_CAPS environment variables in all locations: Environment variables for secrets (or settings) must be set.# TODO set user/group IDs: Container(s) must have a user block (user: "USER:GROUP") set to the correct numerical permissions.# TODO set timezone (TZ): A timezone environment variable (namedTZ) must be set. (For me,America/Denver.)
ReadMes
- Note where I got the original compose file or documentation.
- Add instructions.
- End with notes about complications or issues I ran into.