mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-29 06:31:32 +00:00
PR #30136 review item O5: docker/entrypoint.sh is now a thin shim that forwards to stage2-hook.sh — the real ENTRYPOINT is /init plus main-wrapper.sh. External scripts that hard-coded entrypoint.sh as the container's ENTRYPOINT will see the cont-init bootstrap happen but the CMD will not be exec'd (because stage2-hook only handles bootstrap; main-wrapper.sh handles the CMD passthrough). Add a stderr warning explaining the new contract and pointing callers at the migration path (drop the --entrypoint override). The shim itself stays in place for one release cycle so the deprecation isn't a hard break — anyone still invoking it sees the warning in their logs and has time to migrate.
27 lines
1.6 KiB
Bash
Executable file
27 lines
1.6 KiB
Bash
Executable file
#!/bin/sh
|
|
# s6-overlay shim. The real logic lives in docker/stage2-hook.sh, invoked
|
|
# by /etc/cont-init.d/01-hermes-setup (installed by the Dockerfile). This
|
|
# file exists so external references to docker/entrypoint.sh still work,
|
|
# but it's no longer the ENTRYPOINT — /init is.
|
|
#
|
|
# When called directly (e.g. by an old wrapper script that hard-coded
|
|
# docker/entrypoint.sh as the container ENTRYPOINT, or by an external
|
|
# orchestration script that invokes it inside the container), forward to
|
|
# the stage2 hook for parity with the pre-s6 entrypoint behavior. The
|
|
# stage2 hook only handles cont-init bootstrap (UID remap, chown, config
|
|
# seed, skills sync); it does NOT exec the CMD. Callers that depended
|
|
# on the pre-s6 contract "entrypoint.sh sets up state then execs hermes"
|
|
# will see the bootstrap happen but the CMD will not run from this shim.
|
|
#
|
|
# Deprecation: this shim is preserved for one release cycle to give
|
|
# downstream users time to migrate their wrappers to the image's real
|
|
# ENTRYPOINT (`/init`). It will be removed in a future major release.
|
|
# Surface a warning to stderr so anyone still invoking this path
|
|
# sees the migration notice in their logs.
|
|
echo "[hermes] WARNING: docker/entrypoint.sh is a deprecated shim under " \
|
|
"s6-overlay. The container's real ENTRYPOINT is /init + " \
|
|
"main-wrapper.sh; this script only runs the stage2 cont-init hook " \
|
|
"and does NOT exec the CMD. If you hard-coded docker/entrypoint.sh " \
|
|
"as your ENTRYPOINT, drop the override — docker will use the image's " \
|
|
"default ENTRYPOINT (/init), which handles bootstrap AND CMD." >&2
|
|
exec /opt/hermes/docker/stage2-hook.sh "$@"
|