🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 lines
2.0 KiB
Docker
Executable File
47 lines
2.0 KiB
Docker
Executable File
FROM ubuntu:24.04
|
|
ENV DEBIAN_FRONTEND=noninteractive \
|
|
PLAYWRIGHT_BROWSERS_PATH=/ms-playwright \
|
|
VIRTUAL_ENV=/opt/venv \
|
|
PATH=/opt/venv/bin:$PATH \
|
|
QTWEBENGINE_DISABLE_SANDBOX=1 \
|
|
QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox --disable-gpu" \
|
|
OC_URL="https://vpn.cistech.net/Employees" \
|
|
OC_SERVERCERT="pin-sha256:HyHob3LiVmIp8ch9AzHJ9jMYqI43tO5N13oWeBLiZ/0=" \
|
|
OC_USER="alex.zaw@cistech.net" \
|
|
OC_TOTP_SECRET="t6ypnjqvyx2yvw2l" \
|
|
VNC_PASSWORD="Az@83278327\$\$@@"
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
openconnect iproute2 iptables ca-certificates \
|
|
python3 python3-pip python3-venv \
|
|
vpnc-scripts curl wget openssh-client \
|
|
x11vnc xvfb fluxbox novnc websockify xterm nano oathtool \
|
|
xauth libnss3 libatk1.0-0 libatk-bridge2.0-0 \
|
|
libx11-6 libx11-xcb1 libxcomposite1 libxrandr2 libgbm1 libxdamage1 \
|
|
libpango-1.0-0 fonts-liberation \
|
|
libegl1 libgl1 libopengl0 libdbus-1-3 libglib2.0-0 \
|
|
libxkbcommon0 libxkbcommon-x11-0 \
|
|
libxcb1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render0 libxcb-render-util0 libxcb-shm0 libxcb-xfixes0 libxcb-xinerama0 libxcb-randr0 libxcb-glx0 \
|
|
sudo && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN apt-get update && (apt-get install -y libasound2t64 || apt-get install -y libasound2) && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Python venv + Playwright + openconnect-sso
|
|
RUN python3 -m venv "$VIRTUAL_ENV"
|
|
RUN pip install --no-cache-dir openconnect-sso playwright keyring keyrings.alt && \
|
|
python -m playwright install --with-deps chromium
|
|
|
|
# Cloudflared (amd64)
|
|
RUN arch=$(dpkg --print-architecture) && \
|
|
if [ "$arch" = "amd64" ]; then \
|
|
curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o /tmp/cloudflared.deb && \
|
|
apt-get update && apt-get install -y /tmp/cloudflared.deb && rm -f /tmp/cloudflared.deb ; \
|
|
else \
|
|
echo "Install cloudflared manually for arch=$arch" && exit 1 ; \
|
|
fi
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
EXPOSE 6901
|
|
ENTRYPOINT ["/entrypoint.sh"]
|