添加 opencode/Dockerfile.base
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user