Upstream joins STORAGE_PATH onto os.tmpdir() unless STORAGE_PATH_USE_TMP_FOLDER=false, even for absolute paths, so the container wrote artifacts to /tmp/app/cache instead of the bind mount and lost them on every restart. Set the flag in both config.env (native service) and the quadlet, and chown the host cache dir to the container user via the :U volume option.
30 lines
1.0 KiB
INI
30 lines
1.0 KiB
INI
[Unit]
|
|
Description=Turborepo Remote Cache (Podman quadlet)
|
|
Documentation=https://github.com/ducktors/turborepo-remote-cache
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Container]
|
|
ContainerName=turborepo-remote-cache
|
|
Image=docker.io/ducktors/turborepo-remote-cache:2.11.5
|
|
EnvironmentFile=/etc/turborepo-remote-cache/config.env
|
|
# Bind to loopback on the host; runners reach via host.containers.internal
|
|
PublishPort=127.0.0.1:3128:3000
|
|
# :U chowns the host dir to the container's "app" user on start
|
|
Volume=/var/cache/turborepo-remote-cache:/app/cache:Z,U
|
|
# Override STORAGE_PATH inside the container to match the bind mount.
|
|
# STORAGE_PATH_USE_TMP_FOLDER=false is required: by default the server
|
|
# joins STORAGE_PATH onto os.tmpdir() (even absolute paths) and writes
|
|
# to the ephemeral /tmp/app/cache instead of the bind mount.
|
|
Environment=STORAGE_PATH=/app/cache
|
|
Environment=STORAGE_PATH_USE_TMP_FOLDER=false
|
|
Environment=PORT=3000
|
|
Environment=HOST=0.0.0.0
|
|
|
|
[Service]
|
|
Restart=on-failure
|
|
RestartSec=5s
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target default.target
|