我们要编译一个springboot项目,需要git、jdk、maven环境
1. 基础镜像
可以直接使用官方提供的maven镜像即可
docker pull maven:3.8.2-openjdk-8
其内部的maven版本:
docker run -it maven:3.8.2-openjdk-8 mvn -version
其内部的jdk版本:
docker run -it maven:3.8.2-openjdk-8 java -version
如果你的docker是18.xxx版本,执行会报错:
[root@KSSYSDEV ~]# docker run -it maven:3.8.2-openjdk-8 mvn -version
ls: cannot access '/usr/bin/mvn': Operation not permitted
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
需要把docker 升级到 20.10.xxx就没问题了。
2. 制作支持maven私服的镜像
很多情况下,公司内部都有对应的私服,这时我们就需要自定义镜像了。
maven:3.8.2-openjdk-8镜像的maven配置文件路径是:/usr/share/maven/conf/settings.xml
- Dockerfile
FROM maven:3.8.2-openjdk-8
MAINTAINER zong_b
# 设置时区
RUN apt-get update \
&& apt-get install -y tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apt-get remove tzdata \
&& apt-get autoclean; rm -rf /var/lib/apt/lists/*
ADD settings.xml /usr/share/maven/conf/settings.xml
其中settings.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<id>myserver</id>
<username>user_name</username>
<password>pasw</password>
</server>
</servers>
<mirrors>
<mirror>
<!--该镜像的唯一标识符。id用来区分不同的mirror元素。 -->
<id>myserver</id>
<!--镜像名称 -->
<name>maven-public</name>
<!--*指的是访问任何仓库都使用我们的私服-->
<mirrorOf>*</mirrorOf>
<!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。 -->
<url>http://10.3.23.193:8081/repository/maven-public/</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<!-- 根据仓库id激活下面的配置 -->
<id>bidr</id>
<activation><activeByDefault>true</activeByDefault></activation>
<repositories>
<repository>
<id>bidr</id>
<!-- 私服地址 -->
<url>http://10.3.23.193:8081/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
</profiles>
</settings>
- 重新build镜像
docker build -t 10.3.23.191:9902/devops/maven:3.8.2-openjdk-8-bidr .
- 把镜像推送的镜像仓库
docker login 10.3.23.191:9902
docker push 10.3.23.191:9902/devops/maven:3.8.2-openjdk-8-bidr
pipeline中就可以使用10.3.23.191:9902/devops/maven:3.8.2-openjdk-8-bidr
这个新镜像来支持maven私服
网友评论