socktop-webterm (sha256:40151c6d36cb840d2a5483c7e11f0bc72f6d62dfb4df91d3af0b6c5b6a4d04d5)
Published 2025-11-28 20:20:24 +00:00 by jason
Installation
docker pull gt.wittyoneoff.com/jason/socktop-webterm@sha256:40151c6d36cb840d2a5483c7e11f0bc72f6d62dfb4df91d3af0b6c5b6a4d04d5sha256:40151c6d36cb840d2a5483c7e11f0bc72f6d62dfb4df91d3af0b6c5b6a4d04d5Image Layers
| # debian.sh --arch 'arm64' out/ 'trixie' '@1763337600' |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV RUST_VERSION=stable |
| ENV CARGO_HOME=/usr/local/cargo |
| ENV RUSTUP_HOME=/usr/local/rustup |
| ENV PATH=/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV TERM=xterm-256color |
| RUN /bin/sh -c apt-get update && apt-get upgrade -y && apt-get install -y build-essential pkg-config libssl-dev curl ca-certificates nodejs npm cmake fontconfig libfontconfig1-dev libfreetype6-dev libxcb-xfixes0-dev libxkbcommon-dev python3 fonts-liberation gnupg2 wget unzip git supervisor && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN /bin/sh -c curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${RUST_VERSION} --profile minimal && chmod -R a+w ${RUSTUP_HOME} ${CARGO_HOME} # buildkit |
| RUN /bin/sh -c cargo install alacritty && rm -rf ${CARGO_HOME}/registry ${CARGO_HOME}/git # buildkit |
| RUN /bin/sh -c mkdir -p /usr/share/fonts/truetype/firacode-nerd && cd /tmp && wget -q https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/FiraCode.zip && unzip -q FiraCode.zip -d /usr/share/fonts/truetype/firacode-nerd/ && rm FiraCode.zip && fc-cache -fv && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN /bin/sh -c curl -fsSL https://jasonwitty.github.io/socktop/KEY.gpg | gpg --dearmor -o /usr/share/keyrings/socktop-archive-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/socktop-archive-keyring.gpg] https://jasonwitty.github.io/socktop stable main" > /etc/apt/sources.list.d/socktop.list && apt-get update && apt-get install -y socktop socktop-agent && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN /bin/sh -c id -u socktop &>/dev/null || useradd -m -s /bin/bash socktop && mkdir -p /home/socktop/.config/alacritty && mkdir -p /home/socktop/.config/socktop && chown -R socktop:socktop /home/socktop # buildkit |
| WORKDIR /app |
| COPY --chown=socktop:socktop Cargo.toml Cargo.lock ./ # buildkit |
| COPY --chown=socktop:socktop src ./src # buildkit |
| COPY --chown=socktop:socktop templates ./templates # buildkit |
| COPY --chown=socktop:socktop static ./static # buildkit |
| COPY --chown=socktop:socktop package.json package-lock.json ./ # buildkit |
| RUN /bin/sh -c cargo build --release && rm -rf target/release/build target/release/deps target/release/incremental && strip target/release/webterm-server # buildkit |
| RUN /bin/sh -c npm ci --only=production && cp static/terminado-addon.js node_modules/ && cp static/bg.png node_modules/ && cp static/styles.css node_modules/ && cp static/terminal.js node_modules/ && cp static/favicon.png node_modules/ # buildkit |
| COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf # buildkit |
| COPY docker/entrypoint.sh /entrypoint.sh # buildkit |
| COPY docker/restricted-shell.sh /usr/local/bin/restricted-shell # buildkit |
| RUN /bin/sh -c chmod +x /entrypoint.sh && chmod +x /usr/local/bin/restricted-shell # buildkit |
| EXPOSE [3001/tcp 8082/tcp] |
| HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost:8082/ || exit 1"] "30s" "3s" "5s" "0s" '\x03'} |
| ENTRYPOINT ["/entrypoint.sh"] |
| CMD ["supervisord" "-c" "/etc/supervisor/conf.d/supervisord.conf"] |