Ran the full AI.md sync runbook (gen-dockerfile --update, rootfs regeneration,
dead-variable audit) to bring generated files back in line with the template
and fix a build-breaking bug.
- .env.scripts, .env.scripts.3.14-3.23, .env.scripts.edge, .env.scripts.testing:
fixed ENV_GIT_REPO_URL from the wrong "casjaysdevdocker" org to the correct
"dockersrc" GitHub org; corrected License header from stale MIT to WTFPL
(matches LICENSE.md); removed deprecated DEFAULT_FILE_DIR/DEFAULT_DATA_DIR/
DEFAULT_CONF_DIR/DEFAULT_TEMPLATE_DIR vars; refreshed version/date stamps.
- Dockerfile.3.14-3.22, Dockerfile.edge: fixed LABEL org.opencontainers.image.url
and .source to point at docker.io/casjaysdev/alpine (was hub.docker.com,
registry org is casjaysdev per explicit instruction; GitHub org is dockersrc).
- Dockerfile.3.14: restored the three missing ARG DEFAULT_DATA_DIR/CONF_DIR/
TEMPLATE_DIR declarations (global + both build-stage re-declarations) that
had been dropped, leaving the "RUN mkdir -p ..." step referencing undefined
ARGs. With SHELL_OPTS="set -e -o pipefail" this caused `mkdir -p ""` to fail
the build outright. Verified fixed with a full `docker build` of this file.
- Dockerfile.3.15: same bug — was missing all three ARG DEFAULT_* blocks
(global declarations plus one of the two build-stage re-declarations).
Restored to match the structure of Dockerfile.3.16-3.22/edge exactly.
Verified fixed with a full `docker build` of this file.
- rootfs/root/docker/setup/00-init.sh through 07-cleanup.sh: regenerated from
the current template — license header fix, `set -o pipefail` -> `set -eo
pipefail`, and 00-init.sh/03-files.sh no longer reference the removed
template-files data/config/defaults directories.
- rootfs/usr/local/bin/entrypoint.sh: regenerated from the current template —
license/date stamp refresh, `return` -> `return 0`, `grep` calls hardened
with `--` before pattern arguments, and MTA setup no longer force-succeeds
with `|| true`.
Confirmed via `hadolint` (no new errors, only pre-existing DL3007 latest-tag
warnings shared across the whole Dockerfile fleet) and `sh -n`/`bash -n` on
every touched script (clean). No init.d scripts exist in this repo (Step 4 of
AI.md's runbook not applicable). rootfs directory layout already standard
(Step 7 not applicable — no non-standard top-level dirs found).
Dockerfile.3.14
Dockerfile.3.15
Dockerfile.3.16
Dockerfile.3.17
Dockerfile.3.18
Dockerfile.3.19
Dockerfile.3.20
Dockerfile.3.21
Dockerfile.3.22
Dockerfile.edge
.env.scripts
.env.scripts.3.14
.env.scripts.3.15
.env.scripts.3.16
.env.scripts.3.17
.env.scripts.3.18
.env.scripts.3.19
.env.scripts.3.20
.env.scripts.3.21
.env.scripts.3.22
.env.scripts.3.23
.env.scripts.edge
.env.scripts.testing
rootfs/root/docker/setup/00-init.sh
rootfs/root/docker/setup/01-system.sh
rootfs/root/docker/setup/02-packages.sh
rootfs/root/docker/setup/03-files.sh
rootfs/root/docker/setup/04-users.sh
rootfs/root/docker/setup/05-custom.sh
rootfs/root/docker/setup/06-post.sh
rootfs/root/docker/setup/07-cleanup.sh
rootfs/usr/local/bin/entrypoint.sh
__setup_mta calls __find_replace on /etc/ssmtp/revaliases which returns
1 when the symlink it creates is broken. With set -o pipefail active the
non-zero return kills the entire entrypoint before any command can run.
ssmtp is not installed in this image and email delivery is not a feature
of this image, so the MTA setup failure is irrelevant. Guard the call
with || true so initialization continues regardless.
- rootfs/usr/local/bin/entrypoint.sh: __setup_mta || true (non-fatal)
rootfs/usr/local/bin/entrypoint.sh
The grep -vF line that appends /usr/local/etc/hosts entries had a
duplicate 2>/dev/null redirect after the append operator, which is
a no-op but clutters the script. Synced from template.
- rootfs/usr/local/bin/entrypoint.sh: remove duplicate 2>/dev/null
from grep -vF /etc/hosts append line; bump version to 202606261500-git
rootfs/usr/local/bin/entrypoint.sh
Stale copies called __initialize_default_templates, __initialize_config_dir,
and __initialize_data_dir which are not in the old functions library,
causing container startup failures. Replaced with current template
versions (202606041210-git) which no longer call those missing functions.
- rootfs/usr/local/bin/entrypoint.sh: update to current template
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to current template
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
Update the embedded entrypoint copies in rootfs/ to match the
upstream template change. Internal state files renamed to dotfiles
so they're not matched by `/run/*.pid` cleanup globs:
- /run/init.d/entrypoint.pid -> /run/.entrypoint.pid
- /run/no_exit.pid -> /run/.no_exit.pid
- /run/backup.pid -> /run/.backup.pid
- /run/__start_init_scripts.pid -> /run/.start_init_scripts.pid
Per-service PIDs in /run/init.d/ are unchanged.
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/healthcheck
rootfs/usr/local/bin/symlink
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/default.sample
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh