vscode / Dockerfile
abc1181's picture
AI coding workspace: add Go/Rust/uv/Bun/omp, Caddy port forwarding, full VS Code extensions
310ecc0
Raw
History Blame Contribute Delete
4.12 kB
FROM ubuntu:22.04
LABEL description="AI Coding Workspace · code-server + Continue + OpenCode + Aider + omp"
ENV DEBIAN_FRONTEND=noninteractive
ENV HOME=/root
ENV SHELL=/bin/bash
ENV LANG=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
RUN apt-get update && apt-get install -y --no-install-recommends \
curl wget git git-lfs \
vim nano htop \
python3 python3-pip python3-venv python3-dev \
build-essential pkg-config cmake \
sudo locales jq unzip zip tar gzip xz-utils bzip2 \
ca-certificates gnupg openssh-client ripgrep procps iproute2 \
&& locale-gen en_US.UTF-8 \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL "https://go.dev/dl/go1.22.5.linux-amd64.tar.gz" -o /tmp/go.tar.gz \
&& tar -C /usr/local -xzf /tmp/go.tar.gz \
&& rm /tmp/go.tar.gz
ENV PATH=$PATH:/usr/local/go/bin
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH=$PATH:/root/.cargo/bin
RUN curl -fsSL "https://nodejs.org/dist/v20.19.0/node-v20.19.0-linux-x64.tar.xz" \
-o /tmp/node.tar.xz \
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
&& rm /tmp/node.tar.xz \
&& npm install -g yarn pnpm
ENV PATH=$PATH:/root/.local/share/pnpm:/root/.npm-global/bin
RUN curl -fsSL https://astral.sh/uv/install.sh | sh
ENV PATH=$PATH:/root/.local/bin
RUN curl -fsSL https://code-server.dev/install.sh | sh \
&& rm -rf /tmp/code-server*
RUN curl -fsSL "https://github.com/caddyserver/caddy/releases/download/v2.8.4/caddy_2.8.4_linux_amd64.tar.gz" \
-o /tmp/caddy.tar.gz \
&& tar -xzf /tmp/caddy.tar.gz -C /usr/local caddy \
&& rm /tmp/caddy.tar.gz
RUN pip3 install --no-cache-dir \
ipykernel requests httpx \
numpy pandas black isort pylint \
huggingface_hub \
aider-chat
RUN npm install -g @opencode-ai/opencode
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=$PATH:/root/.bun/bin
RUN curl -fsSL https://omp.sh/install | sh
RUN code-server --install-extension ms-python.python \
&& code-server --install-extension ms-python.vscode-pylance \
&& code-server --install-extension ms-toolsai.jupyter \
&& code-server --install-extension ms-toolsai.jupyter-keymap \
&& code-server --install-extension ms-toolsai.vscode-jupyter-cell-tags \
&& code-server --install-extension ms-toolsai.vscode-jupyter-slideshow \
&& code-server --install-extension esbenp.prettier-vscode \
&& code-server --install-extension eamodio.gitlens \
&& code-server --install-extension mhutchie.git-graph \
&& code-server --install-extension PKief.material-icon-theme \
&& code-server --install-extension formulahendry.code-runner \
&& code-server --install-extension christian-kohler.path-intellisense \
&& code-server --install-extension dbaeumer.vscode-eslint \
&& code-server --install-extension redhat.vscode-yaml \
&& code-server --install-extension redhat.vscode-xml \
&& code-server --install-extension tamasfe.even-better-toml \
&& code-server --install-extension davidanson.vscode-markdownlint \
&& code-server --install-extension golang.go \
&& code-server --install-extension rust-lang.rust-analyzer \
&& code-server --install-extension gruntfuggly.todo-tree \
&& code-server --install-extension donjayamanne.githistory \
&& code-server --install-extension mechatroner.rainbow-csv \
&& code-server --install-extension wayou.vscode-todo-highlight \
&& code-server --install-extension aaron-bond.better-comments \
&& code-server --install-extension njpwerner.autodocstring \
&& code-server --install-extension codezombiech.gitignore \
&& code-server --install-extension github.vscode-github-actions \
&& code-server --install-extension jeff-hykin.better-dockerfile-syntax \
&& code-server --install-extension timonwong.shellcheck \
&& code-server --install-extension yzhang.markdown-all-in-one \
&& code-server --install-extension continue.continue
COPY Caddyfile /etc/caddy/Caddyfile
COPY port-manager.js /port-manager.js
COPY start.sh /start.sh
RUN chmod +x /start.sh
WORKDIR /root
EXPOSE 7860
CMD ["/start.sh"]