Commit Graph
58 Commits
Author SHA1 Message Date
casjay a073491986 🐛 Fix entrypoint hang and lost-interpreter bugs 🐛
- rootfs/usr/local/bin/entrypoint.sh:
  1. The "start all services" gate
     (`if [ "$START_SERVICES" = "yes" ] || [ -z "$1" ]`) always evaluated
     true on a first-run container regardless of $1, because
     START_SERVICES is force-set to "yes" whenever no PID file exists yet.
     Any command passed to `docker run` — `exec ...`, `sh -c ...`,
     `shell`, or an arbitrary program — was swallowed into the
     service-start+monitor branch before reaching the `case "$1"`
     statement that already handles those subcommands, hanging the
     container as a daemon instead of running the given command. Changed
     the condition to `if [ -z "$1" ]` so the daemon branch only fires
     when no command was given at all.
  2. The `*/bin/sh | */bin/bash | bash | sh | shell)` case branch
     unconditionally shifted $1 before `__exec_command "$@"` (a bare
     `exec "$@"`). For `docker run image sh -c 'cmd'` this turned the
     exec into `exec -c cmd` (command not found, exit 127) instead of
     `exec sh -c 'cmd'`. Split the branch: real interpreter names
     (*/bin/sh, */bin/bash, bash, sh) now pass through unshifted; the
     "shell" keyword (not a real interpreter) gets its own branch that
     shifts and prepends "sh" to any remaining args, or falls back to a
     bare `__exec_command` (exec bash -l) when none remain.
  Verified `bash -n` passes. Found and fixed upstream in
  dockersrc/go, confirmed identical in this repo's generated
  entrypoint.sh, and mechanically applied here with the same patch.
2026-07-27 23:14:45 -04:00
casjay 9acff4cb83 📝 Migrate /var/lib/srv docker paths to /srv in README 📝
Update volume mount examples and dockerHome variable from
the old /var/lib/srv/$USER/docker layout to /srv/$USER/docker.
- README.md: update volume path references to /srv/$USER/docker

README.md
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/healthcheck
rootfs/usr/local/bin/symlink
2026-07-10 12:14:48 -04:00
casjay 76a5f9305d 🐛 Fix __create_service_env to write .local.sh to disk 🐛
The .local.sh block defined stub functions in memory but never
wrote the file to disk, so __file_exists_with_content always
failed and __create_service_env returned non-zero on every run.
Fix: use a heredoc to write the stub functions into .local.sh.
- rootfs/usr/local/etc/docker/init.d/00-mongodb.sh: write .local.sh
via heredoc in __create_service_env; bump version to 202606261600-git

rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:50:52 -04:00
casjay e3d9df3ef4 🐛 Fix __create_service_env to write .local.sh to disk 🐛
The .local.sh block defined stub functions in memory but never
wrote the file to disk, so __file_exists_with_content always
failed and __create_service_env returned non-zero on every run.
Fix: use a heredoc to write the stub functions into .local.sh.
- rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh: write .local.sh
via heredoc in __create_service_env; bump version to 202606261600-git

rootfs/usr/local/etc/docker/init.d/00-mongodb.sh
rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh
2026-06-26 21:06:08 -04:00
casjay d543a3a0e8 🐛 Remove stale local function definitions from init.d script 🐛
__cd, __pcheck, __pgrep, and __proc_check were locally defined in
init.d scripts before they were added to the shared docker-entrypoint
functions library. These local copies shadow the improved library
versions and prevent library updates from taking effect.
- rootfs/usr/local/etc/docker/init.d/00-mongodb.sh: remove stale local __cd/__pcheck/__pgrep/__proc_check definitions; defer to shared library

rootfs/usr/local/etc/docker/init.d/00-mongodb.sh
2026-06-26 18:49:28 -04:00
casjay cd476a836e 🐛 Remove stale local function definitions from init.d script 🐛
__cd, __pcheck, __pgrep, and __proc_check were locally defined in
init.d scripts before they were added to the shared docker-entrypoint
functions library. These local copies shadow the improved library
versions and prevent library updates from taking effect.
- rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh: remove stale local __cd/__pcheck/__pgrep/__proc_check definitions; defer to shared library

rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh
2026-06-26 18:47:30 -04:00
casjay e10a38d554 🐛 Fix duplicate 2>/dev/null in entrypoint.sh /etc/hosts line 🐛
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:43:22 -04:00
casjay 751ebdd081 🐛 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:25:12 -04:00
casjay 7f9f2f7a21 🐛 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:33:31 -04:00
casjay a21a5d1900 🐛 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:34:24 -04:00
casjay 2a1374b2ac ♻️ Migrate mongodb to /config/ source-of-truth architecture ♻️
Migrate mongodb Docker image to the new build-time config architecture.
- rootfs/root/docker/setup/03-files.sh: rewrite to canonical form with /tmp/bin, /tmp/var, /tmp/etc, /tmp/usr handlers
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to latest template
- rootfs/usr/local/etc/docker/init.d/*.sh: fix $(basename) UUOC; move inline comments above code lines
- rootfs/tmp/etc/: add service config files (mongodb mongo-express nginx php ) deployed to /etc/ at build time
- rootfs/usr/local/share/template-files/: delete; config now deployed via /tmp/etc/ and /tmp/usr/ at build time

rootfs/root/docker/setup/03-files.sh
rootfs/tmp/
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/00-mongodb.sh
rootfs/usr/local/etc/docker/init.d/zz-mongo-express.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/config/mongodb/mongod.conf
rootfs/usr/local/share/template-files/config/mongo-express/config.js
rootfs/usr/local/share/template-files/config/nginx/mime.types
rootfs/usr/local/share/template-files/config/nginx/nginx.conf
rootfs/usr/local/share/template-files/config/nginx/nginx.ssl.conf
rootfs/usr/local/share/template-files/config/nginx/vhosts.d/default.conf.sample
rootfs/usr/local/share/template-files/config/nginx/vhosts.d/default.ssl.sample
rootfs/usr/local/share/template-files/config/php/php-fpm.conf
rootfs/usr/local/share/template-files/config/php/php-fpm.d/www.conf
rootfs/usr/local/share/template-files/config/php/php.ini
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-06-04 14:38:59 -04:00
casjay 187d0c0fe9 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:27:03 -04:00
casjay 4d4677f4a3 🗃️ Removed the .claude/settings.local.json 🗃️
Dockerfile
.env.scripts
.gitattributes
.gitea/workflows/docker.yaml
.gitignore
LICENSE.md
README.md
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/pkmgr
2026-05-12 20:07:16 -04:00
casjay 0013a781a9 🗃️ 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/entrypoint.sh
rootfs/usr/local/etc/docker/env/default.sample
rootfs/usr/local/etc/docker/env/zz-entrypoint.sh
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:12:07 -04:00
casjay 3c2b3a7238 🗃️ readme: rename rootfs/ to volumes/ for compose context 🗃️
Aligns README install/run snippets with the new convention split:
rootfs/ for Dockerfile-build content (image filesystem), volumes/
for docker-compose host bind-mounts. Compose mounts, host bind
paths, and runtime data dirs are renamed; Dockerfile COPY/ADD
sources (where present) are preserved.

README.md
2026-05-05 14:35:19 -04:00
casjay d62fb707c8 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:25:42 -05:00
casjay 495eff964d 🔄 Update entrypoint.sh script in docker functions directory 🔄
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:03:39 -05:00
casjay a91d4e3585 🗃️ Fixed the entrypoint scripts 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/default.sample
2025-11-29 12:36:56 -05:00
casjay 3a86ab64b2 🗃️ Updated Dockerfile* and .env.scripts* 🗃️
Dockerfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:04:31 -05:00
casjay 7da91536ee 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-11-23 08:47:47 -05:00
casjay 335a7d895b 🗃️ Fixed the .gitignore file 🗃️
.gitignore

Dockerfile
2025-10-31 12:34:04 -04:00
casjay 371cbeece3 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-10-22 13:05:41 -04:00
casjay 8923c5849a 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/00-mongodb.sh
rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh
2025-09-20 06:39:28 -04:00
casjay c3ec6903a2 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:27:42 -04:00
casjay 55790aa7ce 🗃️ Committing everything that changed 🗃️
Dockerfile
.env.scripts
.gitattributes
.gitignore
rootfs/.gitea/
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/
rootfs/usr/local/share/template-files/config/.gitkeep
2025-09-16 19:37:44 -04:00
casjay dd55099202 🗃️ Committing everything that changed 🗃️
.env.scripts
2025-09-16 10:22:55 -04:00
casjay 389271ba01 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:10:15 -04:00
casjay 894f7deb1a 🗃️ Committing everything that changed 🗃️
Dockerfile
2025-09-05 22:16:47 -04:00
casjay becffdcf67 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/
2025-09-05 13:36:06 -04:00
casjay 64e02532f0 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2025-02-04 09:29:12 -05:00
casjay f82844c6fe 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-01-10 23:16:39 -05:00
casjay be01178037 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-24 11:03:38 -04:00
casjay ef906d3241 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 16:37:58 -04:00
casjay 32382b834e ➕ Added: .gitea/ ➕
Added: .gitea/
2024-08-01 16:09:38 -04:00
casjay 14caa4f5c7 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2024-08-01 15:59:09 -04:00
casjay 48995a87c5 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:38:24 -04:00
casjay dcab0f98b1 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:05:17 -04:00
casjay e2e28bf519 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 14:55:30 -04:00
casjay 21a4e77533 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
Dockerfile
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-31 12:29:46 -04:00
casjay 53deedd770 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-29 18:24:59 -04:00
casjay 3aabce8b25 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
Dockerfile
.gitea/
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-29 17:57:26 -04:00
casjay 1590c9ca44 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 20:06:56 -04:00
casjay f8504cec46 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 18:47:08 -04:00
casjay a4d124c55c 🗃 Modified: rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh 🗃
Modified: rootfs/usr/local/etc/docker/init.d/zz-mongo-express.sh
2024-07-14 10:45:45 -04:00
casjay 3868b7803f 🗃 Modified: rootfs/usr/local/etc/docker/init.d/00-mongodb.sh 🗃
Modified: rootfs/usr/local/etc/docker/init.d/00-mongodb.sh
2024-07-14 10:45:45 -04:00
casjay 07dcc2c5a5 🗃 Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃
Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 10:45:45 -04:00
casjay c592ed5098 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/entrypoint.sh
2023-09-04 17:02:13 -04:00
casjay f3ed18d09e 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2023-09-04 01:33:08 -04:00
casjay 2fc39e3138 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2023-09-04 00:33:07 -04:00
casjay 0acc5b47cc 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2023-09-03 23:57:04 -04:00