🔧 Complete Docker template update runbook 🔧
Build and Push / build (push) Has been cancelled

Finish syncing generated Docker template files against upstream templates:
remove dead template-files ARGs from the Dockerfile, sync bin-script
boilerplate to the current shell/sh template, migrate the non-standard
rootfs/etc dir to rootfs/tmp/etc, fix a gitignore bug that silently dropped
rootfs/tmp/, correct the README license, and document the go-tools
toolchain-stage exception in the runbook.
- AI.md: document that language toolchain build stages (e.g. `FROM golang:alpine AS go-tools`)
are intentionally exempt from the PULL_URL/GEN_DOCKERFILE_APP_DIR org rule
- Dockerfile: remove dead DEFAULT_FILE_DIR/DEFAULT_DATA_DIR/DEFAULT_CONF_DIR/DEFAULT_TEMPLATE_DIR
ARGs and their mkdir usage — the template-files directory no longer exists
- README.md: fix stale license claim (MIT) to match the actual LICENSE.md (WTFPL)
- .gitignore: anchor the tmp/ pattern to /tmp/ so it stops silently swallowing
the required rootfs/tmp/ directory
- rootfs/etc/profile.d/go.sh -> rootfs/tmp/etc/profile.d/go.sh: migrate the
non-standard rootfs/etc dir to the tmp/etc convention (rootfs/root, rootfs/tmp,
rootfs/usr are the only valid rootfs root dirs; 03-files.sh copies tmp/etc/* at build time)
- rootfs/usr/local/bin/copy, rootfs/usr/local/bin/symlink: sync APPNAME
assignment to the current template style and add the missing trap '' EXIT line
- rootfs/usr/local/bin/healthcheck: sync APPNAME assignment and add the
missing trap '' EXIT line

AI.md
Dockerfile
.gitignore
README.md
rootfs/etc/profile.d/go.sh
rootfs/tmp/
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/healthcheck
rootfs/usr/local/bin/symlink
This commit is contained in:
2026-07-10 19:58:22 -04:00
parent 3266c80323
commit 711972c88b
8 changed files with 23 additions and 42 deletions
+10 -24
View File
@@ -125,20 +125,6 @@ Summary:
The Docker Hub push org (`casjaysdev`) is unchanged regardless of `GEN_DOCKERFILE_APP_DIR`.
### Toolchain build stages are exempt from the pull-URL org rule
Language toolchain images (e.g. `dockersrc/go`) add a dedicated build stage that pulls a
pre-built upstream toolchain image directly, independent of `PULL_URL`/`GEN_DOCKERFILE_APP_DIR`:
```dockerfile
FROM --platform=$BUILDPLATFORM golang:alpine AS go-tools
```
This is intentional and correct — it speeds up building the toolchain (e.g. Go binaries) by
reusing an official prebuilt image with the compiler already installed, rather than installing it
from scratch in the `PULL_URL` base stage. Do not change these stages to use `PULL_URL` or route
them through `GEN_DOCKERFILE_APP_DIR` logic; they are a separate concern from the OS base image.
### Arch Linux multi-arch (`archlinux.template`)
When `GEN_DOCKERFILE_APP_DIR != "casjaysdevdocker"` (i.e. building a base image in
@@ -554,8 +540,8 @@ dockermgr update {name}
## Install and run container
```shell
dockerHome="/srv/$USER/docker/casjaysdevdocker/{name}/{name}/latest/rootfs"
mkdir -p "/srv/$USER/docker/{name}/rootfs"
dockerHome="/var/lib/srv/$USER/docker/casjaysdevdocker/{name}/{name}/latest/rootfs"
mkdir -p "/var/lib/srv/$USER/docker/{name}/rootfs"
git clone "https://github.com/dockermgr/{name}" "$HOME/.local/share/CasjaysDev/dockermgr/{name}"
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/{name}/rootfs/." "$dockerHome/"
docker run -d \
@@ -582,8 +568,8 @@ services:
- TZ=America/New_York
- HOSTNAME={name}
volumes:
- "/srv/$USER/docker/casjaysdevdocker/{name}/{name}/latest/rootfs/data:/data:z"
- "/srv/$USER/docker/casjaysdevdocker/{name}/{name}/latest/rootfs/config:/config:z"
- "/var/lib/srv/$USER/docker/casjaysdevdocker/{name}/{name}/latest/rootfs/data:/data:z"
- "/var/lib/srv/$USER/docker/casjaysdevdocker/{name}/{name}/latest/rootfs/config:/config:z"
ports:
- {port}:{port}
restart: always
@@ -638,17 +624,17 @@ dockermgr update os {name}
## Install and run container
```shell
mkdir -p "/srv/root/docker/casjaysdev/{name}/latest"
mkdir -p "/var/lib/srv/root/docker/casjaysdev/{name}/latest"
git clone "https://github.com/dockermgr/{name}" "$HOME/.local/share/CasjaysDev/dockermgr/{name}"
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/{name}/rootfs/." "/srv/root/docker/casjaysdev/{name}/latest/"
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/{name}/rootfs/." "/var/lib/srv/root/docker/casjaysdev/{name}/latest/"
docker run -d \
--restart always \
--privileged \
--name casjaysdev-{name}-latest \
--hostname {name} \
-e TZ=${TIMEZONE:-America/New_York} \
-v "/srv/root/docker/casjaysdev/{name}/latest/data:/data:z" \
-v "/srv/root/docker/casjaysdev/{name}/latest/config:/config:z" \
-v "/var/lib/srv/root/docker/casjaysdev/{name}/latest/data:/data:z" \
-v "/var/lib/srv/root/docker/casjaysdev/{name}/latest/config:/config:z" \
casjaysdev/{name}:latest
```
@@ -664,8 +650,8 @@ services:
- TZ=America/New_York
- HOSTNAME={name}
volumes:
- "/srv/root/docker/casjaysdev/{name}/latest/data:/data:z"
- "/srv/root/docker/casjaysdev/{name}/latest/config:/config:z"
- "/var/lib/srv/root/docker/casjaysdev/{name}/latest/data:/data:z"
- "/var/lib/srv/root/docker/casjaysdev/{name}/latest/config:/config:z"
restart: always
```