38 lines
1.6 KiB
Markdown
38 lines
1.6 KiB
Markdown
# 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.
|
|
|
|
## 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 (named `TZ`) must be set. (For me, `America/Denver`.)
|
|
|
|
## ReadMes
|
|
1. Note where I got the original compose file or documentation.
|
|
2. Add instructions.
|
|
3. End with notes about complications or issues I ran into.
|