初始开发环境

This commit is contained in:
anian
2026-03-15 22:43:47 +08:00
commit f2237f4877
4 changed files with 102 additions and 0 deletions
Executable
+66
View File
@@ -0,0 +1,66 @@
# 使用 Debian slim
FROM debian:12-slim
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
LANGUAGE=C.UTF-8 \
TERM=xterm-256color
LABEL maintainer="anian <support@anian.cc>"
ENV NODE_VERSION=20.20.0
ENV PNPM_VERSION=latest
ENV PATH="/root/.local/share/pnpm:/usr/local/node/bin:${PATH}"
# 安装基础工具
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
unzip \
xz-utils \
ca-certificates \
bash \
&& rm -rf /var/lib/apt/lists/*
# 创建 Java 目录
RUN mkdir -p /opt/java
# 安装 Java 17
RUN curl -L https://api.adoptium.net/v3/binary/latest/17/ga/linux/x64/jdk/hotspot/normal/eclipse \
| tar -xz -C /opt/java \
&& mv /opt/java/jdk-17* /opt/java/java17
# 安装 Java 21
RUN curl -L https://api.adoptium.net/v3/binary/latest/21/ga/linux/x64/jdk/hotspot/normal/eclipse \
| tar -xz -C /opt/java \
&& mv /opt/java/jdk-21* /opt/java/java21
# 注册 Java
RUN update-alternatives --install /usr/bin/java java /opt/java/java17/bin/java 1 \
&& update-alternatives --install /usr/bin/java java /opt/java/java21/bin/java 2 \
&& update-alternatives --install /usr/bin/javac javac /opt/java/java17/bin/javac 1 \
&& update-alternatives --install /usr/bin/javac javac /opt/java/java21/bin/javac 2
# 默认 Java17
RUN update-alternatives --set java /opt/java/java17/bin/java \
&& update-alternatives --set javac /opt/java/java17/bin/javac
# 安装 Node.js
RUN mkdir -p /usr/local/node \
&& curl -fsSL https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz \
| tar -xJ -C /usr/local/node --strip-components=1
# 安装 pnpm
RUN npm install -g pnpm@${PNPM_VERSION}
# 添加 Java 切换命令
RUN echo '#!/bin/bash\nupdate-alternatives --set java /opt/java/java17/bin/java\nupdate-alternatives --set javac /opt/java/java17/bin/javac\necho "Switched to Java 17"' > /usr/local/bin/use-java17 \
&& chmod +x /usr/local/bin/use-java17
RUN echo '#!/bin/bash\nupdate-alternatives --set java /opt/java/java21/bin/java\nupdate-alternatives --set javac /opt/java/java21/bin/javac\necho "Switched to Java 21"' > /usr/local/bin/use-java21 \
&& chmod +x /usr/local/bin/use-java21
WORKDIR /app
CMD ["/bin/bash"]