添加 opencode/Dockerfile.base

This commit is contained in:
wol
2026-07-03 17:56:48 +08:00
parent ba5350afd0
commit a5cf27fb82
+215
View File
@@ -0,0 +1,215 @@
FROM ubuntu:24.04
LABEL maintainer="OpenCode Dev"
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
###############################################################################
# 基础软件
###############################################################################
RUN apt-get update && \
apt-get install -y --no-install-recommends \
apt-transport-https \
ca-certificates \
software-properties-common \
gnupg \
lsb-release \
curl \
wget \
git \
git-lfs \
unzip \
zip \
xz-utils \
tar \
gzip \
bzip2 \
nano \
vim \
less \
jq \
tree \
htop \
tmux \
procps \
iputils-ping \
dnsutils \
net-tools \
openssh-client \
rsync \
file \
sudo \
bash-completion \
ripgrep \
fd-find \
fzf \
build-essential \
clang \
llvm \
cmake \
ninja-build \
pkg-config \
make \
libc6-dev \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libffi-dev \
liblzma-dev \
libncursesw5-dev \
libxml2-dev \
libxmlsec1-dev \
libcurl4-openssl-dev \
&& rm -rf /var/lib/apt/lists/*
###############################################################################
# Java
###############################################################################
RUN apt-get update && \
apt-get install -y --no-install-recommends \
openjdk-21-jdk \
maven \
gradle && \
rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
ENV PATH=${JAVA_HOME}/bin:${PATH}
###############################################################################
# Python
###############################################################################
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3 \
python3-dev \
python3-pip \
python3-venv \
python-is-python3 && \
rm -rf /var/lib/apt/lists/*
RUN python3 -m pip install --break-system-packages --upgrade \
pip \
setuptools \
wheel
RUN python3 -m pip install --break-system-packages \
uv \
poetry \
virtualenv \
ipython \
notebook \
jupyter \
requests \
httpx \
flask \
fastapi \
uvicorn \
numpy \
pandas \
matplotlib \
black \
ruff
###############################################################################
# Node.js 22 LTS
###############################################################################
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
RUN apt-get update && \
apt-get install -y nodejs && \
rm -rf /var/lib/apt/lists/*
RUN npm install -g \
npm \
pnpm \
yarn \
bun \
typescript \
tsx \
vite \
create-vite \
npm-check-updates
###############################################################################
# Go
###############################################################################
RUN apt-get update && \
apt-get install -y golang && \
rm -rf /var/lib/apt/lists/*
ENV GOPATH=/root/go
ENV PATH=${GOPATH}/bin:${PATH}
###############################################################################
# Rust
###############################################################################
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
ENV CARGO_HOME=/root/.cargo
ENV PATH=${CARGO_HOME}/bin:${PATH}
###############################################################################
# Docker CLI
###############################################################################
# RUN install -m 0755 -d /etc/apt/keyrings && \
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
# gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
# chmod a+r /etc/apt/keyrings/docker.gpg
#
# RUN echo \
# "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
# https://download.docker.com/linux/ubuntu \
# $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
# > /etc/apt/sources.list.d/docker.list
#
# RUN apt-get update && \
# apt-get install -y docker-ce-cli && \
# rm -rf /var/lib/apt/lists/*
###############################################################################
# Android
###############################################################################
ENV ANDROID_HOME=/opt/android-sdk
ENV ANDROID_SDK_ROOT=/opt/android-sdk
RUN mkdir -p /opt/android-sdk/cmdline-tools
ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin
ENV PATH=${PATH}:${ANDROID_HOME}/platform-tools
###############################################################################
# Workspace
###############################################################################
RUN mkdir -p \
/workspace \
/root/.gradle \
/root/.m2 \
/root/.npm \
/root/.cache/pip \
/root/.local/share/pnpm \
/root/.cargo \
/root/go \
/root/.android
WORKDIR /workspace