fix: Add nginx reverse proxy for code-server subpath routing
code-server cannot handle being served under a subpath with Traefik StripPrefix. Added nginx as reverse proxy that listens on 8080 and proxies to code-server on 8081. This preserves all URLs and asset paths correctly. - nginx listens on 0.0.0.0:8080 (external) - code-server listens on 127.0.0.1:8081 (internal) - Entrypoint starts nginx + socat + code-server This fixes 404 errors on workbench.css and asset loading. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
5f6b06a66a
commit
22d10330c5
|
|
@ -56,11 +56,28 @@ USER root
|
||||||
RUN rm -f /tmp/cpptools.vsix /tmp/platformio.vsix
|
RUN rm -f /tmp/cpptools.vsix /tmp/platformio.vsix
|
||||||
|
|
||||||
# socat für Port-Tunneling installieren (PIO Home reverse proxy)
|
# socat für Port-Tunneling installieren (PIO Home reverse proxy)
|
||||||
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y socat nginx && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Entrypoint-Script - startet socat Tunnel + code-server
|
# nginx als Reverse Proxy für code-server (fixiert Subpath-Routing)
|
||||||
|
RUN printf 'server {\n\
|
||||||
|
listen 8080;\n\
|
||||||
|
server_name localhost;\n\
|
||||||
|
location / {\n\
|
||||||
|
proxy_pass http://localhost:8081;\n\
|
||||||
|
proxy_http_version 1.1;\n\
|
||||||
|
proxy_set_header Upgrade $http_upgrade;\n\
|
||||||
|
proxy_set_header Connection "upgrade";\n\
|
||||||
|
proxy_set_header Host $host;\n\
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;\n\
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;\n\
|
||||||
|
}\n\
|
||||||
|
}\n' > /etc/nginx/sites-available/default && rm -f /etc/nginx/sites-enabled/default
|
||||||
|
|
||||||
|
# Entrypoint-Script - startet nginx + socat + code-server
|
||||||
RUN printf '#!/bin/bash\n\
|
RUN printf '#!/bin/bash\n\
|
||||||
socat TCP-LISTEN:8008,reuseaddr,fork TCP:localhost:9009 &\n\
|
socat TCP-LISTEN:8008,reuseaddr,fork TCP:localhost:9009 &\n\
|
||||||
|
nginx -g "daemon off;" &\n\
|
||||||
exec "$@"\n' > /entrypoint.sh && chmod +x /entrypoint.sh
|
exec "$@"\n' > /entrypoint.sh && chmod +x /entrypoint.sh
|
||||||
|
|
||||||
USER coder
|
USER coder
|
||||||
|
|
@ -68,4 +85,4 @@ USER coder
|
||||||
WORKDIR /home/coder/project
|
WORKDIR /home/coder/project
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
CMD ["code-server", "--bind-addr", "0.0.0.0:8080", "--auth", "none"]
|
CMD ["code-server", "--bind-addr", "127.0.0.1:8081", "--auth", "none"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user