Commit Graph
48 Commits
Author SHA1 Message Date
casjay e852eb595f 🐛 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:27:54 -04:00
casjay 8be0b7a979 📝 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:19:50 -04:00
casjay 60c68f1251 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:52:17 -04:00
casjay dffa482ff9 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:42:44 -04:00
casjay 9fd6a9e00b 🐛 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/99-nginx.sh: write .local.sh
via heredoc in __create_service_env; bump version to 202606261600-git

rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:35:36 -04:00
casjay ecd48e9261 🐛 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/01-php-fpm.sh: write .local.sh
via heredoc in __create_service_env; bump version to 202606261600-git

rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
2026-06-26 21:07:11 -04:00
casjay e77cf97bf4 🐛 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:45:21 -04:00
casjay b37a525ed0 🐛 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:35:05 -04:00
casjay 8aaf4d879a 🐛 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:35:58 -04:00
casjay d9e5518f11 ♻️ Migrate stikked to /config/ source-of-truth architecture ♻️
Migrate stikked 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; remove template-files copy block
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to latest template with __init_service_conf, __find_php_ini, __find_php_bin helpers
- rootfs/usr/local/etc/docker/init.d/*.sh: fix $(basename) UUOC → ${var##*/}; move inline comments above code lines; remove commented-out dead code
- rootfs/usr/local/share/template-files/: delete entire directory; config files now deployed via /tmp/etc/ at build time

rootfs/root/docker/setup/03-files.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.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-06-04 14:48:53 -04:00
casjay ee54d7d9c0 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:27:46 -04:00
casjay f67adfc1d9 🗃️ 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:09:14 -04:00
casjay a221d3cd70 🗃️ 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/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.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:09 -04:00
casjay cae27d9b37 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:26:12 -05:00
casjay dd9fa28a61 ...🐳 Enhancement: Modifications in entrypoint.sh script (rootfs/usr/loca...
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:07:44 -05:00
casjay 872dc617be 🗃️ 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:37:25 -05:00
casjay 5b6d452e12 🗃️ Updated Dockerfile* and .env.scripts* 🗃️
Dockerfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:05:02 -05:00
casjay b963c1f508 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
2025-09-20 06:40:01 -04:00
casjay cf12bb2a2b 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:28:14 -04:00
casjay 617177dae6 🗃️ Committing everything that changed 🗃️
Dockerfile
.env.scripts
.gitattributes
.gitignore
rootfs/.gitea/
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
2025-09-16 19:38:43 -04:00
casjay 8651a5ecf4 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:11:05 -04:00
casjay 5e4f44d2b4 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/
2025-09-05 13:36:59 -04:00
casjay ba34d9d89a 🗃️ Committing everything that changed 🗃️
Dockerfile
.env.scripts
rootfs/root/docker/setup/05-custom.sh
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
rootfs/usr/local/share/template-files/config/env/default.sample
2025-02-03 15:20:15 -05:00
casjay 19b3a4b39f 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-01-10 23:17:15 -05:00
casjay a3c86c0d2f 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
rootfs/root/docker/setup/00-init.sh
2024-11-19 13:57:47 -05:00
casjay 640920b3ac 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
2024-11-19 12:46:45 -05:00
casjay b7715130c7 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
2024-11-19 12:43:49 -05:00
casjay 32f5ae5d5e 🗃️ Committing everything that changed 🗃️
Dockerfile
.env.scripts
rootfs/root/docker/setup/03-files.sh
rootfs/root/docker/setup/05-custom.sh
rootfs/tmp/etc/nginx/fastcgi_params
rootfs/tmp/etc/nginx/mime.types
rootfs/tmp/etc/nginx/nginx.conf
rootfs/tmp/etc/nginx/nginx.ssl.conf
rootfs/tmp/etc/nginx/scgi_params
rootfs/tmp/etc/nginx/uwsgi_params
rootfs/tmp/etc/nginx/vhosts.d/default.conf.sample
rootfs/tmp/etc/nginx/vhosts.d/default.ssl.sample
2024-11-19 12:41:15 -05:00
casjay 809c25e37d 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-24 11:04:10 -04:00
casjay cb7e6ee0d0 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-07 21:03:03 -04:00
casjay aa6aa2131c 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-07 14:59:02 -04:00
casjay 82d72f3b01 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-07 14:12:50 -04:00
casjay 8ff431d144 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-02 10:19:27 -04:00
casjay 47418ef7a1 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-27 16:41:52 -04:00
casjay 9acfd4f4aa 🗃️ Committing everything that changed 🗃️
Dockerfile
rootfs/tmp/etc/php-fpm/php-fpm.conf
rootfs/tmp/etc/php-fpm/php-fpm.d/www.conf
rootfs/tmp/etc/php/php.ini
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-18 14:43:23 -04:00
casjay 221b975a64 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-18 08:06:05 -04:00
casjay 16fd37cea2 🗃️ Committing everything that changed 🗃️
Dockerfile
rootfs/root/docker/setup/05-custom.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
2024-08-17 19:46:11 -04:00
casjay 43a85f16ca 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/nginx/nginx.conf
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
2024-08-17 19:41:26 -04:00
casjay 28d3b28cb3 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
2024-08-17 18:31:47 -04:00
casjay 600ed8e772 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/nginx/nginx.conf
2024-08-17 16:09:31 -04:00
casjay 8685c41f8f 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/php-fpm/php-fpm.conf
2024-08-17 15:08:24 -04:00
casjay 1866537feb 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/php-fpm/php-fpm.conf
2024-08-17 14:34:12 -04:00
casjay 0b787a9c52 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/php/
rootfs/tmp/etc/php83/php.ini
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
2024-08-17 14:23:05 -04:00
casjay 9a54cd4f94 🗃️ Committing everything that changed 🗃️
rootfs/root/docker/setup/03-files.sh
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
2024-08-16 15:52:09 -04:00
casjay 1c8e1b0ef3 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
2024-08-16 15:39:16 -04:00
casjay c94094185d 🗃️ Committing everything that changed 🗃️
rootfs/root/docker/setup/03-files.sh
2024-08-15 18:57:34 -04:00
casjay 6659b507b8 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/php83/
rootfs/tmp/etc/php/php.ini
2024-08-15 18:54:59 -04:00
casjay dd152dc7e7 🦈🏠🐜 Initial Commit 🐜🦈🏠 2024-08-15 18:35:02 -04:00