fix: patch server-ui entrypoint to fix sed ordering bug
The server-ui's entrypoint inserts <base href> THEN rewrites all href="/" — including the just-inserted base tag, causing doubling. Patched entrypoint rewrites asset paths first, then inserts <base>. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -192,9 +192,12 @@ services:
|
|||||||
cameleer3-server-ui:
|
cameleer3-server-ui:
|
||||||
image: ${CAMELEER3_SERVER_UI_IMAGE:-gitea.siegeln.net/cameleer/cameleer3-server-ui}:${VERSION:-latest}
|
image: ${CAMELEER3_SERVER_UI_IMAGE:-gitea.siegeln.net/cameleer/cameleer3-server-ui}:${VERSION:-latest}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
entrypoint: ["/bin/sh", "/cameleer-entrypoint-patched.sh"]
|
||||||
depends_on:
|
depends_on:
|
||||||
cameleer3-server:
|
cameleer3-server:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
volumes:
|
||||||
|
- ./docker/server-ui-entrypoint.sh:/cameleer-entrypoint-patched.sh:ro
|
||||||
environment:
|
environment:
|
||||||
CAMELEER_API_URL: http://cameleer3-server:8081
|
CAMELEER_API_URL: http://cameleer3-server:8081
|
||||||
BASE_PATH: /server
|
BASE_PATH: /server
|
||||||
|
|||||||
20
docker/server-ui-entrypoint.sh
Normal file
20
docker/server-ui-entrypoint.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Patched entrypoint: fixes the sed ordering bug in the server-ui image.
|
||||||
|
# The original entrypoint inserts <base href> then rewrites ALL href="/..."
|
||||||
|
# including the just-inserted base tag, causing /server/server/ doubling.
|
||||||
|
|
||||||
|
BASE_PATH="${BASE_PATH:-/}"
|
||||||
|
|
||||||
|
if [ "$BASE_PATH" != "/" ]; then
|
||||||
|
BASE_PATH=$(echo "$BASE_PATH" | sed 's#/*$#/#; s#^/*#/#')
|
||||||
|
|
||||||
|
INDEX="/usr/share/nginx/html/index.html"
|
||||||
|
# Rewrite absolute asset paths FIRST (before inserting <base>)
|
||||||
|
sed -i "s|href=\"/|href=\"${BASE_PATH}|g; s|src=\"/|src=\"${BASE_PATH}|g" "$INDEX"
|
||||||
|
# THEN inject <base> tag
|
||||||
|
sed -i "s|<head>|<head><base href=\"${BASE_PATH}\">|" "$INDEX"
|
||||||
|
|
||||||
|
echo "BASE_PATH set to ${BASE_PATH} — rewrote index.html"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /docker-entrypoint.sh "$@"
|
||||||
Reference in New Issue
Block a user