33 lines
2.1 KiB
Docker
33 lines
2.1 KiB
Docker
# Extend Kasm Chrome so CDP is reachable from other containers.
|
|
# Chrome (M113+) binds remote debugging to 127.0.0.1 only; socat forwards 0.0.0.0:9222 -> 127.0.0.1:9223.
|
|
FROM kasmweb/chrome:1.18.0-rolling-daily
|
|
|
|
USER root
|
|
RUN apt-get update && apt-get install -y --no-install-recommends socat yad gosu \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY entrypoint_root.sh /dockerstartup/entrypoint_root.sh
|
|
RUN chmod +x /dockerstartup/entrypoint_root.sh
|
|
COPY dockerstartup_wrapper.sh /dockerstartup/dockerstartup_wrapper.sh
|
|
COPY cdp_proxy.py /dockerstartup/cdp_proxy.py
|
|
# Disable SSL in KasmVNC so nginx (Let's Encrypt) is the only TLS; upstream is plain HTTP.
|
|
COPY kasmvnc.yaml /etc/kasmvnc/kasmvnc.yaml
|
|
# Startup script hardcodes -sslOnly; remove it so noVNC accepts HTTP when behind our proxy.
|
|
RUN sed -i 's/ -sslOnly//g' /dockerstartup/vnc_startup.sh
|
|
RUN chmod +x /dockerstartup/dockerstartup_wrapper.sh
|
|
# Chrome launcher: desktop shortcut + floating "Open Chrome" button (icons hidden in single-app mode)
|
|
COPY launch_chrome.sh /dockerstartup/launch_chrome.sh
|
|
COPY chrome_launcher_button.sh /dockerstartup/chrome_launcher_button.sh
|
|
COPY open-chrome-launcher.desktop /dockerstartup/open-chrome-launcher.desktop
|
|
COPY google-chrome.desktop /dockerstartup/google-chrome.desktop
|
|
RUN chmod +x /dockerstartup/launch_chrome.sh /dockerstartup/chrome_launcher_button.sh \
|
|
&& mkdir -p /home/kasm-default-profile/.config/autostart /home/kasm-user/Desktop /home/kasm-default-profile/Desktop \
|
|
&& cp /dockerstartup/open-chrome-launcher.desktop /home/kasm-default-profile/.config/autostart/ \
|
|
&& cp /dockerstartup/google-chrome.desktop /home/kasm-user/Desktop/ \
|
|
&& cp /dockerstartup/google-chrome.desktop /home/kasm-default-profile/Desktop/ \
|
|
&& chmod +x /home/kasm-user/Desktop/google-chrome.desktop /home/kasm-default-profile/Desktop/google-chrome.desktop \
|
|
&& chown -R 1000:0 /home/kasm-default-profile/.config/autostart /home/kasm-user/Desktop /home/kasm-default-profile/Desktop
|
|
# Container must start as root so entrypoint can chown the bind-mounted chrome-profile
|
|
USER root
|
|
ENTRYPOINT ["/dockerstartup/entrypoint_root.sh"]
|
|
CMD ["--wait"]
|