美文网首页
制作基础镜像-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