固定Debian、Java、node、pnpm版本
This commit is contained in:
+18
-8
@@ -1,15 +1,22 @@
|
|||||||
# 使用 Debian slim
|
# 基础镜像
|
||||||
FROM debian:12-slim
|
FROM debian:12.13-slim
|
||||||
|
|
||||||
|
# 系统环境配置
|
||||||
ENV LANG=C.UTF-8 \
|
ENV LANG=C.UTF-8 \
|
||||||
LC_ALL=C.UTF-8 \
|
LC_ALL=C.UTF-8 \
|
||||||
LANGUAGE=C.UTF-8 \
|
LANGUAGE=C.UTF-8 \
|
||||||
TERM=xterm-256color
|
TERM=xterm-256color
|
||||||
|
|
||||||
|
# 维护者信息
|
||||||
LABEL maintainer="anian <support@anian.cc>"
|
LABEL maintainer="anian <support@anian.cc>"
|
||||||
|
|
||||||
|
# 关键软件版本
|
||||||
ENV NODE_VERSION=20.20.0
|
ENV NODE_VERSION=20.20.0
|
||||||
ENV PNPM_VERSION=latest
|
ENV PNPM_VERSION=10.32.1
|
||||||
|
ENV JDK17_VERSION=17.0.18+8
|
||||||
|
ENV JDK21_VERSION=21.0.10+7
|
||||||
|
|
||||||
|
# 将 Node 和 pnpm 加入系统 PATH
|
||||||
ENV PATH="/root/.local/share/pnpm:/usr/local/node/bin:${PATH}"
|
ENV PATH="/root/.local/share/pnpm:/usr/local/node/bin:${PATH}"
|
||||||
|
|
||||||
# 安装基础工具
|
# 安装基础工具
|
||||||
@@ -26,13 +33,13 @@ RUN apt-get update && apt-get install -y \
|
|||||||
# 创建 Java 目录
|
# 创建 Java 目录
|
||||||
RUN mkdir -p /opt/java
|
RUN mkdir -p /opt/java
|
||||||
|
|
||||||
# 安装 Java 17
|
# 固定版本安装 Java 17
|
||||||
RUN curl -L https://api.adoptium.net/v3/binary/latest/17/ga/linux/x64/jdk/hotspot/normal/eclipse \
|
RUN curl -L https://api.adoptium.net/v3/binary/version/jdk-${JDK17_VERSION}/linux/x64/jdk/hotspot/normal/eclipse \
|
||||||
| tar -xz -C /opt/java \
|
| tar -xz -C /opt/java \
|
||||||
&& mv /opt/java/jdk-17* /opt/java/java17
|
&& mv /opt/java/jdk-17* /opt/java/java17
|
||||||
|
|
||||||
# 安装 Java 21
|
# 固定版本安装 Java 21
|
||||||
RUN curl -L https://api.adoptium.net/v3/binary/latest/21/ga/linux/x64/jdk/hotspot/normal/eclipse \
|
RUN curl -L https://api.adoptium.net/v3/binary/version/jdk-${JDK21_VERSION}/linux/x64/jdk/hotspot/normal/eclipse \
|
||||||
| tar -xz -C /opt/java \
|
| tar -xz -C /opt/java \
|
||||||
&& mv /opt/java/jdk-21* /opt/java/java21
|
&& mv /opt/java/jdk-21* /opt/java/java21
|
||||||
|
|
||||||
@@ -54,13 +61,16 @@ RUN mkdir -p /usr/local/node \
|
|||||||
# 安装 pnpm
|
# 安装 pnpm
|
||||||
RUN npm install -g pnpm@${PNPM_VERSION}
|
RUN npm install -g pnpm@${PNPM_VERSION}
|
||||||
|
|
||||||
# 添加 Java 切换命令
|
# 添加 Java17 切换命令
|
||||||
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 \
|
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
|
&& chmod +x /usr/local/bin/use-java17
|
||||||
|
|
||||||
|
# 添加 Java21 切换命令
|
||||||
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 \
|
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
|
&& chmod +x /usr/local/bin/use-java21
|
||||||
|
|
||||||
|
# 设置工作目录为 /app
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 容器启动后默认进入 bash 终端
|
||||||
CMD ["/bin/bash"]
|
CMD ["/bin/bash"]
|
||||||
Reference in New Issue
Block a user