cpuai's picture
Install complete Linux VS Code + AHP MCP development workstation 2026-10-12
08aae36 verified
Raw History Blame Contribute Delete
3.49 kB
FROM mcr.microsoft.com/dotnet/sdk:10.0-noble
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC \
DOTNET_CLI_TELEMETRY_OPTOUT=1 \
DOTNET_NOLOGO=1 \
PIP_BREAK_SYSTEM_PACKAGES=1 \
PATH=/home/coder/.local/bin:/usr/local/bin:/usr/share/dotnet:$PATH \
PYTHONUNBUFFERED=1 \
PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright \
HOME=/home/coder
# A real Linux development environment, with common compilers and media tools.
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl wget git git-lfs jq unzip zip xz-utils \
bash sudo supervisor nginx openssh-client \
build-essential gcc g++ make cmake ninja-build pkg-config gdb clang \
python3 python3-pip python3-dev python3-venv python-is-python3 \
ffmpeg imagemagick sox libsox-fmt-all \
fonts-noto-cjk fonts-noto-color-emoji fonts-dejavu-core fontconfig \
libnss3 libatk-bridge2.0-0 libgtk-3-0 libasound2t64 \
libx11-xcb1 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libxshmfence1 \
bubblewrap socat ripgrep sqlite3 file procps tini \
&& rm -rf /var/lib/apt/lists/*
# Node.js 22 LTS for Hyperframes and modern frontend work.
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
&& apt-get install -y nodejs \
&& node --version && npm --version \
&& rm -rf /var/lib/apt/lists/*
# The bridge targets .NET 8; SDK 10 is for creating new .NET projects.
RUN curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh \
&& bash /tmp/dotnet-install.sh --channel 8.0 --runtime aspnetcore --install-dir /usr/share/dotnet --no-path \
&& rm /tmp/dotnet-install.sh \
&& dotnet --list-runtimes
# Browser-accessible VS Code-compatible IDE.
RUN curl -fsSL https://code-server.dev/install.sh | sh \
&& code-server --version
# Microsoft's official VS Code CLI is required for a real 'code agent host'.
RUN curl -fL --retry 4 https://update.code.visualstudio.com/latest/cli-linux-x64/stable \
-o /tmp/vscode-cli.tar.gz \
&& tar -xzf /tmp/vscode-cli.tar.gz -C /usr/local/bin code \
&& chmod 755 /usr/local/bin/code \
&& rm /tmp/vscode-cli.tar.gz \
&& code --version
# Hyperframes v2 runtime dependencies; no fake TTS fallback.
RUN python3 -m pip install --break-system-packages --no-cache-dir \
"edge-tts>=7.0.0" "numpy>=1.24" pillow requests playwright \
&& npm install -g hyperframes@0.8.115 gsap@3.15.0 \
&& python3 -m playwright install --with-deps chromium \
&& chmod -R a+rX /opt/ms-playwright \
&& rm -rf /var/lib/apt/lists/* /tmp/*
# Use a non-root user. HF Docker Space must serve on 7860.
RUN if getent passwd 1000 >/dev/null; then \
olduser="$(getent passwd 1000 | cut -d: -f1)"; \
usermod -l coder -d /home/coder "$olduser"; \
else \
useradd -m -u 1000 -s /bin/bash coder; \
fi \
&& mkdir -p /opt/workstation/bridge /opt/workstation/scripts /opt/workstation/skill \
/home/coder/workspace /home/coder/data /home/coder/.local/share \
&& chown -R coder /opt/workstation /home/coder
COPY --chown=coder bridge/ /opt/workstation/bridge/
COPY --chown=coder skill/ /opt/workstation/skill/
COPY --chown=coder scripts/ /opt/workstation/scripts/
COPY --chown=coder nginx.conf supervisord.conf welcome.html /opt/workstation/
RUN chmod +x /opt/workstation/scripts/*.sh
USER coder
WORKDIR /home/coder/workspace
EXPOSE 7860
ENTRYPOINT ["/usr/bin/tini","--","/opt/workstation/scripts/entrypoint.sh"]