优化 CI 流程:在TeamCity镜像中切换Java版本的方法
为什么要修改TeamCity镜像中的Java版本
Teamcity 官方镜像中默认的 Java 版本是 11,但是我们的项目需要使用 Java 8。因此,我们需要修改 TeamCity 镜像中的 Java 版本。
如何修改TeamCity镜像中的Java版本
以下是一个验证过的 Dockerfile,可以在 TeamCity 镜像中切换 Java 版本。
# 基于原始镜像,这里假设原始镜像名为 your-original-image
FROM jetbrains/teamcity-agent
# 避免在构建过程中出现询问
# ARG DEBIAN_FRONTEND=noninteractive
USER root
# 更新包列表,修复可能损坏的包,清理无用的包
RUN apt-get update && \
apt-get install -y wget unzip openjdk-8-jdk
# 移除 JDK 17(如果存在)
RUN apt-get remove -y openjdk-17-jdk || true
# 设置环境变量,确保使用的是 JDK 1.8
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
ENV PATH $JAVA_HOME/bin:$PATH
# 下载并解压 Gradle 5.2.1
RUN wget https://services.gradle.org/distributions/gradle-5.2.1-bin.zip -P /tmp && \
unzip -d /opt/gradle /tmp/gradle-5.2.1-bin.zip && \
rm /tmp/gradle-5.2.1-bin.zip
# 设置环境变量,以便可以直接运行 gradle 命令
ENV GRADLE_HOME /opt/gradle/gradle-5.2.1
ENV PATH $PATH:$GRADLE_HOME/bin
构建镜像
在 Dockerfile 所在目录执行以下命令构建镜像:
sudo docker build -t teamcity-java-gradle-image .
# -rm: 构建完成后删除中间容器
docker run -it --rm teamcity-java-gradle-image /bin/bash
sudo docker tag teamcity-java-gradle-image phoenixhf/teamcity-java-gradle-image:1.1
sudo docker push phoenixhf/teamcity-java-gradle-image:1.1
最后修改于 2024-05-20