Commit Graph

18 Commits

Author SHA1 Message Date
jason 9453d19ba4 🐛 Fix __exec_command dropping all arguments after the first 🐛
Build and Push 10 / build (push) Has been cancelled
Build and Push 11 / build (push) Has been cancelled
Build and Push 12 / build (push) Has been cancelled
Build and Push 13 / build (push) Has been cancelled
Build and Push / build (push) Has been cancelled
__exec_command was using ${arg:-} which only captured the first element
of the args array, then ran it through "$shell" $pre_exec "$cmdExec"
which effectively discarded everything after $1.
Running `docker run image sh -c 'go build ...'` would:
1. Set arg=("sh" "-c" "go build ...")
2. Set cmdExec="sh" (only first element)
3. Run bash --login -c "sh" (dropping -c and the actual command)
This broke any Makefile GO_DOCKER pattern that relied on passing multi-arg
commands. Simplified to just `exec "$@"` which passes all args through.
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: rewrite __exec_command

rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-29 00:46:50 -04:00
jason 3ebfcae5ad 🐛 Fix entrypoint crash on __setup_mta ssmtp failure 🐛
Build and Push 10 / build (push) Failing after 2s
Build and Push 11 / build (push) Failing after 1s
Build and Push 12 / build (push) Failing after 2s
Build and Push 13 / build (push) Failing after 2s
Build and Push / build (push) Failing after 2s
__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
2026-06-27 19:19:14 -04:00
jason 6dab2cb3b3 🐛 Fix duplicate 2>/dev/null in entrypoint.sh /etc/hosts line 🐛
Build and Push 10 / build (push) Failing after 3s
Build and Push 12 / build (push) Failing after 4s
Build and Push / build (push) Failing after 6s
Build and Push 13 / build (push) Failing after 13m5s
Build and Push 11 / build (push) Failing after 13m13s
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
2026-06-26 18:46:41 -04:00
jason 21ced1c46a 🗃 Modified: rootfs/usr/local/etc/resolv.conf 🗃
Modified: rootfs/usr/local/etc/resolv.conf
2026-06-26 15:46:11 -04:00
jason ad00959b4e 🗃 Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃
Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 15:46:10 -04:00
jason 9442cd7ba9 🐛 Update entrypoint.sh and functions library from current template 🐛
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
2026-06-05 18:26:27 -04:00
jason 543f2f360c 🐛 Fix resolv.conf: add search . and ndots:0 to block domain search 🐛
--domainname on the container sets the kernel domainname, which c-ares
uses to infer a search domain even when /etc/resolv.conf has no search
line. This caused c-ares to query github.com.casjay.work AAAA and get
the host's own IPv6 address, routing all outbound HTTPS to the local
nginx instead of the real server.
Adding 'search .' and 'options ndots:0' explicitly disables search
domain inference regardless of the kernel domainname setting.
- rootfs/usr/local/etc/resolv.conf: add search . and options ndots:0

rootfs/usr/local/etc/resolv.conf
2026-06-05 14:36:17 -04:00
jason f85a7d43f2 🐛 Fix container DNS: ship resolv.conf without search domain 🐛
Hosts with a search domain cause containers to inherit it. When the
zone has a wildcard AAAA record, public hostnames resolve to the host's
own IPv6 address instead of the real server, breaking all outbound
HTTPS and DNS from inside the container.
The entrypoint already has a hook: if /usr/local/etc/resolv.conf
exists it replaces /etc/resolv.conf at container startup. Ship a
clean resolv.conf with Cloudflare + Google DNS and no search domain
so container DNS is always correct regardless of host configuration.
- rootfs/usr/local/etc/resolv.conf: new file — clean DNS, no search domain

rootfs/usr/local/etc/resolv.conf
2026-06-05 12:37:10 -04:00
jason 34bf090fed 🔧 Update docker functions/entrypoint.sh to latest 🔧
Synced from casjay-dotfiles templates. Updated functions now check
for existence before copying template-files directories, skipping
gracefully when they are absent.
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: updated to latest

rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-04 11:52:10 -04:00
jason 7f689ad6ad 🗑️ Remove unused template-files from rootfs 🗑️
The init framework now checks for existence before copying; empty
placeholder directories are no longer needed in the image layer.
- rootfs/usr/local/share/template-files/: removed entirely

rootfs/usr/local/share/template-files/config/env/default.sample
rootfs/usr/local/share/template-files/config/env/examples/00-directory.sh
rootfs/usr/local/share/template-files/config/env/examples/addresses.sh
rootfs/usr/local/share/template-files/config/env/examples/certbot.sh
rootfs/usr/local/share/template-files/config/env/examples/couchdb.sh
rootfs/usr/local/share/template-files/config/env/examples/dockerd.sh
rootfs/usr/local/share/template-files/config/env/examples/global.sh
rootfs/usr/local/share/template-files/config/env/examples/healthcheck.sh
rootfs/usr/local/share/template-files/config/env/examples/mariadb.sh
rootfs/usr/local/share/template-files/config/env/examples/mongodb.sh
rootfs/usr/local/share/template-files/config/env/examples/networking.sh
rootfs/usr/local/share/template-files/config/env/examples/other.sh
rootfs/usr/local/share/template-files/config/env/examples/php.sh
rootfs/usr/local/share/template-files/config/env/examples/postgres.sh
rootfs/usr/local/share/template-files/config/env/examples/redis.sh
rootfs/usr/local/share/template-files/config/env/examples/services.sh
rootfs/usr/local/share/template-files/config/env/examples/ssl.sh
rootfs/usr/local/share/template-files/config/env/examples/supabase.sh
rootfs/usr/local/share/template-files/config/env/examples/webservers.sh
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
rootfs/usr/local/share/template-files/config/.gitkeep
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-06-04 11:21:10 -04:00
jason 41352bd296 🔧 Update scripts, remove certbot, add CA cert update 🔧
Update all container scripts to 202605241245-git, remove certbot from
all package lists, and add CA certificate update step after install.
- .env.scripts*: remove certbot from ENV_PACKAGES (all 5 version files)
- Dockerfile*: remove certbot from PACK_LIST (all 5 version Dockerfiles)
- rootfs/root/docker/setup/00-init.sh: updated to latest template
- rootfs/root/docker/setup/01-system.sh: updated to latest template
- rootfs/root/docker/setup/02-packages.sh: add update-ca-certificates/update-ca-trust step
- rootfs/root/docker/setup/03-files.sh: updated to latest template
- rootfs/root/docker/setup/04-users.sh: updated to latest template
- rootfs/root/docker/setup/05-custom.sh: updated to latest template
- rootfs/root/docker/setup/06-post.sh: updated to latest template
- rootfs/root/docker/setup/07-cleanup.sh: updated to latest template
- rootfs/usr/local/bin/entrypoint.sh: updated to 202605241245-git
- rootfs/usr/local/bin/pkmgr: updated to 202605241245-git
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: updated to 202605241245-git

Dockerfile
Dockerfile.10
Dockerfile.11
Dockerfile.12
Dockerfile.13
.env.scripts
.env.scripts.10
.env.scripts.11
.env.scripts.12
.env.scripts.13
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
rootfs/usr/local/bin/pkmgr
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 21:41:45 -04:00
jason 26fe828867 🗃️ rootfs: shield internal entrypoint PID files from /run/*.pid sweeps 🗃️
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
2026-05-05 19:13:52 -04:00
jason e844e447d1 ♻ Rename dockerfs to rootfs and update Dockerfiles ♻
- Renamed dockerfs/ directory tree to rootfs/ across all paths
- Updated Dockerfile and Dockerfile.10-13 to reference new rootfs path
- Added new copy and symlink helper scripts under rootfs/usr/local/bin
- Added template-files data and defaults .gitkeep placeholders
- Updated README.md to reflect the new directory structure

Dockerfile
Dockerfile.10
Dockerfile.11
Dockerfile.12
Dockerfile.13
dockerfs/root/docker/setup/00-init.sh
dockerfs/root/docker/setup/01-system.sh
dockerfs/root/docker/setup/02-packages.sh
dockerfs/root/docker/setup/03-files.sh
dockerfs/root/docker/setup/04-users.sh
dockerfs/root/docker/setup/05-custom.sh
dockerfs/root/docker/setup/06-post.sh
dockerfs/root/docker/setup/07-cleanup.sh
dockerfs/usr/local/bin/entrypoint.sh
dockerfs/usr/local/bin/pkmgr
dockerfs/usr/local/etc/docker/functions/entrypoint.sh
dockerfs/usr/local/share/template-files/config/env/default.sample
dockerfs/usr/local/share/template-files/config/env/examples/00-directory.sh
dockerfs/usr/local/share/template-files/config/env/examples/addresses.sh
dockerfs/usr/local/share/template-files/config/env/examples/certbot.sh
dockerfs/usr/local/share/template-files/config/env/examples/couchdb.sh
dockerfs/usr/local/share/template-files/config/env/examples/dockerd.sh
dockerfs/usr/local/share/template-files/config/env/examples/global.sh
dockerfs/usr/local/share/template-files/config/env/examples/healthcheck.sh
dockerfs/usr/local/share/template-files/config/env/examples/mariadb.sh
dockerfs/usr/local/share/template-files/config/env/examples/mongodb.sh
dockerfs/usr/local/share/template-files/config/env/examples/networking.sh
dockerfs/usr/local/share/template-files/config/env/examples/other.sh
dockerfs/usr/local/share/template-files/config/env/examples/php.sh
dockerfs/usr/local/share/template-files/config/env/examples/postgres.sh
dockerfs/usr/local/share/template-files/config/env/examples/redis.sh
dockerfs/usr/local/share/template-files/config/env/examples/services.sh
dockerfs/usr/local/share/template-files/config/env/examples/ssl.sh
dockerfs/usr/local/share/template-files/config/env/examples/supabase.sh
dockerfs/usr/local/share/template-files/config/env/examples/webservers.sh
dockerfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
dockerfs/usr/local/share/template-files/config/.gitkeep
dockerfs/usr/local/share/template-files/data/.gitkeep
dockerfs/usr/local/share/template-files/defaults/.gitkeep
README.md
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/symlink
2026-05-05 14:31:59 -04:00
jason e3578a3f6f 🗃️ Updated workflows and moved rootfs 🗃️
Dockerfile
Dockerfile.10
Dockerfile.11
Dockerfile.12
Dockerfile.13
dockerfs/
.gitea/workflows/docker.10.yaml
.gitea/workflows/docker.11.yaml
.gitea/workflows/docker.12.yaml
.gitea/workflows/docker.13.yaml
.gitea/workflows/docker.yaml
.github/
README.md
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
rootfs/usr/local/bin/pkmgr
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/00-directory.sh
rootfs/usr/local/share/template-files/config/env/examples/addresses.sh
rootfs/usr/local/share/template-files/config/env/examples/certbot.sh
rootfs/usr/local/share/template-files/config/env/examples/couchdb.sh
rootfs/usr/local/share/template-files/config/env/examples/dockerd.sh
rootfs/usr/local/share/template-files/config/env/examples/global.sh
rootfs/usr/local/share/template-files/config/env/examples/healthcheck.sh
rootfs/usr/local/share/template-files/config/env/examples/mariadb.sh
rootfs/usr/local/share/template-files/config/env/examples/mongodb.sh
rootfs/usr/local/share/template-files/config/env/examples/networking.sh
rootfs/usr/local/share/template-files/config/env/examples/other.sh
rootfs/usr/local/share/template-files/config/env/examples/php.sh
rootfs/usr/local/share/template-files/config/env/examples/postgres.sh
rootfs/usr/local/share/template-files/config/env/examples/redis.sh
rootfs/usr/local/share/template-files/config/env/examples/services.sh
rootfs/usr/local/share/template-files/config/env/examples/ssl.sh
rootfs/usr/local/share/template-files/config/env/examples/supabase.sh
rootfs/usr/local/share/template-files/config/env/examples/webservers.sh
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
rootfs/usr/local/share/template-files/config/.gitkeep
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-01-15 23:48:07 -05:00
jason 14008fa661 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 18:27:33 -05:00
jason 442e235e52 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:17:59 -05:00
jason 2004373ff8 🗃️ Fixed rootfs/** files 🗃️
Dockerfile
.env.scripts
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/copy
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/symlink
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:55:36 -05:00
jason 84e87bfc7e 🦈🏠🐜 Initial Commit 🐜🦈🏠 2025-11-29 11:11:40 -05:00