美文网首页
制作基础镜像-Maven编译环境

制作基础镜像-Maven编译环境

作者: heichong | 来源:发表于2022-12-27 17:14 被阅读0次

我们要编译一个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私服

相关文章

网友评论

      本文标题:制作基础镜像-Maven编译环境

      本文链接:https://www.haomeiwen.com/subject/qvqntdtx.html