feat(docker): simplify docker compose for end users (#96)

* feat(docker): simplify docker compose for end users

The previous docker-compose requires end user to manually handle
permissions of taskchampion data dir. And this commit has directories
automatically set up in docker-entrypoint.sh, just like what
postgresql did in https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh

* fix(docker): revert to anonymous data volume for compatibility

* feat: use uid 1092 for taskchampion

* fix(docker): revert mkdir

This is embarrassing that subpaths are not automatically created.

So we still need mkdir service in case of anonymous data volume.

* fix(docker): typo
This commit is contained in:
adamanteye 2025-03-02 02:08:27 +08:00 committed by GitHub
parent c47612b3a0
commit 65ad035d8d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 42 additions and 19 deletions

View file

@ -1,16 +1,13 @@
volumes:
data:
services:
# Make the necessary subdirectories of the `data` volume, and set ownership of the
# `tss/taskchampion-sync-server` directory, as the server runs as user 100.
mkdir:
image: caddy:2-alpine
command: |
/bin/sh -c "
mkdir -p /data/caddy/data /data/caddy/config /data/tss/taskchampion-sync-server &&
chown -R 100:100 /data/tss/taskchampion-sync-server
"
mkdir -p /data/caddy/data /data/caddy/config /data/tss/taskchampion-sync-server"
volumes:
- type: volume
source: data
@ -48,18 +45,18 @@ services:
tss:
image: ghcr.io/gothenburgbitfactory/taskchampion-sync-server:0.5.0
restart: unless-stopped
environment:
- "RUST_LOG=info"
- "DATA_DIR=/var/lib/taskchampion-sync-server/data"
- "LISTEN=0.0.0.0:8080"
volumes:
- type: volume
source: data
target: /tss
target: /var/lib/taskchampion-sync-server/data
read_only: false
volume:
nocopy: true
subpath: tss
environment:
- "RUST_LOG=info"
- "DATA_DIR=/tss/taskchampion-sync-server"
- "LISTEN=0.0.0.0:8080"
subpath: tss/taskchampion-sync-server
depends_on:
mkdir:
condition: service_completed_successfully