Maven的Docker镜像二次打包,再次推送至Harbor中

之所以如此操作,主要原因是,官版的镜像中默认的setting.xml已内置好,不容易修改,
重新二次打包,可以指定我们自己的setting.xml配置,配置自己的私服地址以及解决默认Maven仓库国内下载速度慢的问题

一、创建操作目录

$ cd ~
$ mkdir -p dockerfiles/maven

二、创建 settings.xml 和 Dockerfile

$ cd dockerfiles/maven
$ touch settings.xml Dockerfile

三、编辑 settings.xml 以下供参考

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>/root/.m2</localRepository>
    <pluginGroups>
    </pluginGroups>
    <proxies>
    </proxies>
    <servers>
        <server>
            <id>maven-public</id>
            <username>anonymous</username>
        </server>
        <server>
            <id>maven-inner</id>
            <username>test</username>
            <password>test</password>
        </server>
        <server>
            <id>maven-releases</id>
            <username>test</username>
            <password>test</password>
        </server>
        <server>
            <id>maven-snapshots</id>
            <username>test</username>
            <password>test</password>
        </server>
        <server>
            <id>docker-registry</id>
            <username>test</username>
            <password>test</password>
        </server>
    </servers>
    <mirrors>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>

        <!--配置阿里云maven私有仓库(即配阿里私服)-->
        <mirror>
            <id>alimaven</id>
            <mirrorOf>*</mirrorOf>
            <url>https://maven.aliyun.com/repository/central</url>
        </mirror>

        <!-- maven官方镜像 -->
        <mirror>
          <id>mirrorId</id>
          <mirrorOf>central</mirrorOf>
          <name>Human Readable Name </name>
          <url>https://repo1.maven.org/maven2/</url>
        </mirror>

        <!-- 阿里云镜像1 -->
        <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>https://central.maven.org/maven2</url>
          <mirrorOf>central</mirrorOf>
        </mirror>

        <!-- 阿里云镜像2 -->
        <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
          <mirrorOf>central</mirrorOf>
        </mirror>

    </mirrors>
    <profiles>
        <profile>
            <id>chenrise-outer</id>
            <repositories>
                <repository>
                    <id>maven-public</id>
                    <name>Chenrise Maven Http</name>
                    <url>http://maven.test.com/repository/maven-public/</url>
                    <layout>default</layout>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
        <profile>
            <id>chenrise-inner</id>
            <repositories>
                <repository>
                    <id>maven-work</id>
                    <name>Chenrise Maven Http</name>
                    <url>http://192.168.1.190:8081/repository/maven-public/</url>
<!--                    <url>http://nexus.jljianxing.work/repository/maven-public/</url>-->
                    <layout>default</layout>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>chenrise-inner</activeProfile>
<!--        <activeProfile>chenrise-inner</activeProfile>-->
    </activeProfiles>
</settings>

编辑settings.xml,主要是对maven的repository与mirror进行配置,内容如下

四、编辑Dockerfile,

来源于 maven:3.6.0-jdk-8-alpine,把编写好的配置settings.xml复制到镜像内即可

FROM maven:3.6.0-jdk-8-alpine
COPY settings.xml /usr/share/maven/ref/

五、构建镜像

$ docker build -t maven:3.5-jdk-8 .

其中maven指的是自定义镜像中的 REPOSITORY
3.5-jdk-8指的是自定义镜像中的 TAG

在这里插入图片描述

六、查看镜像

$ docker image ls

在这里插入图片描述

七、将自定义的镜像推送到自己的harbor仓库

# 如服务器未登录过,需先使用以下命令登录后再推送
# $ docker login harbor.test.com
$ docker push harbor.test.com/jx-common/maven:3.5-jdk-8

八、使用自定义镜像

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/362799.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安全防御第五次作业

拓扑图及要求如下&#xff1a; 实验注意点&#xff1a; 先配置双机热备&#xff0c;再来配置安全策略和NAT两台双机热备的防火墙的接口号必须一致双机热备时&#xff0c;请确保vrrp配置的虚拟IP与下面的ip在同一网段如果其中一台防火墙有过配置&#xff0c;最好清空或重启&…

SerDes PoC 电感网络工作原理详解

如下图所示,PoC的工作原理可以描述如下: 1. 直流状态时,电感处于短路状态,电容处于开路状态,因此,接收端的电源能够通过电感注入到信号传输系统中,并在另一端通过电感为本地电路供电,而不会透过电容影响到两端的高速收发器; 2. 交流状态时,即高频信号注入时,电容器是…

Vue3的Props

Vue 3中的props是用于接收父组件传递的数据的属性。在Vue 3中&#xff0c;props的声明发生了一些改变&#xff1a; 使用props选项来声明props。之前的版本中使用props属性来声明&#xff0c;但在Vue 3中改为使用props选项。通过TypeScript或Flow来静态类型检查props。Vue 3允许…

Java EE 5 SDK架构

Java EE 5 SDK架构 大型组织每天都要处理大量数据和多用户的相关事务。为管理该组织如此大型而又复杂的系统,开发了企业应用程序。企业应用程序是在服务器上托管的应用程序,通过计算机网络同时向大量用户提供服务。这种应用程序可采用各种技术开发,如Java EE 5。Java EE 5平…

Spark SQL的高级用法

一. 快速生成多行的序列 需求:请生成一列数据, 内容为 1 , 2 , 3 , 4 ,5 -- 快速生成多行的序列 -- 方式一 select explode(split("1,2,3,4,5",",")); --方式二 /*序列函数sequence(start,stop,step):生成指定返回的列表数据[start,stop]必须传入,step步…

用githubDesktop部署静态页面到github

准备项目 现在桌面新建文件夹 在githubDesktop选择新建存储库&#xff0c;本地路径选择新建的文件夹路径 选择发布到存储库&#xff0c;将本地文件夹的内容和github进行连接 将项目文件复制粘贴到新建的文件夹里面 在githubDesktop填写摘要和描述&#xff0c;选择上传 …

一文教你如何本地搭建Qchan图床网站实现公网远程访问

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景&#xff0c;在大量开发人员的努力下&#xff0c;已经开发出大…

【Java 数据结构】对象的比较

Java中对象的比较 1. PriorityQueue中插入对象2. 元素的比较2.1 基本类型的比较2.2 对象比较的问题 3. 对象的比较3.1 覆写基类的equals3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比 4. 集合框架中PriorityQueue的比较方式5. 使用PriorityQueue创建大小堆…

Vue学习笔记(二)快速入门

Vue学习笔记&#xff08;二&#xff09;快速入门 vue小试牛刀 hello-vue3.html <body><div id"app"><h1>{{msg}}</h1></div><script type"module">import {createApp} from https://unpkg.com/vue3/dist/vue.esm-b…

【MySQL】——用SQL语句实现数据库和基本表的创建

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

【数据库】mysql触发器使用

题目&#xff1a; 创建职工表以及职工工资表职工表字段&#xff1a;工号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄工资表字段&#xff1a;编号自增&#xff0c;职工工号&#xff0c;基础工资10000通过触发器实现&#xff1a;对职工进行添加时 工资表中也要体现当前职…

【Linux】环境基础开发工具的使用(一)

前言&#xff1a;在此之前我们学习了一些Linux的权限&#xff0c;今天我们进一步学习Linux下开发工具的使用。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:Linux的深度刨析 &#x1f448; &#x1f4af;代码仓库:卫卫周大胖的学习日记…

docker下,容器无法启动,要删除里面的文件

第一步&#xff1a;进入docker cd /var/lib/docker 第二步&#xff1a;查找&#xff0c;我这里是拼音分词器 find ./ -name py 第三步&#xff1a;得到路径 第四步&#xff1a;删除或复制或移动&#xff0c;我这里是删除py文件夹 rm -rf ./over那一串 第五步&#xff1a;想干…

在 python 中调用 C/C++

Python 是一种很好用的胶水语言&#xff0c;利用Python的简洁和C的高效&#xff0c;基本可以解决99%的问题了&#xff0c;剩下那 1% 的问题也就不是问题了&#xff0c;毕竟不是所有问题都可解。 一般的&#xff0c;Python和C的交互分为这两种情况&#xff1a; 用C扩展Python&…

转转基于MQ的分布式重试框架设计方案

文章目录 1 背景2 方案3 效果4 可选项5 注意事项6 总结 1 背景 在分布式场景下&#xff0c;为了保障系统的可用性和数据的最终一致性&#xff0c;采用基于消息队列&#xff08;MQ&#xff09;的重试机制是一种常见的解决方案。伪代码如下&#xff1a; /*** 需要保证最终一致性…

数据可视化Tableau

目录 一.第一次实验课内容 1、熟悉Tableau Desktop的工作环境。 2、熟悉数据导入、维度和度量的区分以及不同数据字段类型的标识符。 3、熟悉工作表的基本操作&#xff0c;主要包括行列功能区&#xff0c;标记卡&#xff0c;筛选器&#xff0c;智能推荐的使用。 4、作业--…

3. Mybatis的XML配置文件(重点)

目录 1 Mybatis的XML配置文件 1.1 XML配置文件规范 1.2 XML配置文件实现 1.3 MybatisX的使用 2. Mybatis动态SQL 2.1 什么是动态SQL 2.2 动态SQL-if 2.2.1 条件查询 2.2.2更新 2.3 动态SQL-foreach 2.4 动态SQL-sql&include 1.mybatis入门 2.mybatis基本操作 1…

六大效果图渲染技巧,实现照片级真实感!

追求完美的3D艺术家们&#xff0c;注意了&#xff01;掌握这六大效果图渲染技巧&#xff0c;就能令你的作品逾越虚拟与现实的边界。无需长篇大论&#xff0c;立即提升你的渲染工作至照片级别的真实感&#xff01;让观者难以分辨&#xff0c;这正是我们所追求的魔法。 六大效果图…

LRU缓存(Leetcode146)

例题&#xff1a; 分析&#xff1a; 题目要求函数get和put要达到O(1)的时间复杂度&#xff0c;可以用 hashMap 来实现&#xff0c;因为要满足逐出最久未使用的元素的一个效果&#xff0c;还需要配合一个双向链表来共同实现。链表中的节点为一组key-value。 我们可以用双向链表来…

LED显示屏安装后常见调试问题及解决方法

LED全彩显示屏在户外广泛应用&#xff0c;通常由多个箱体组装而成。在安装和调试过程中&#xff0c;可能会出现一些常见问题&#xff0c;下面对这些问题及解决方法进行汇总&#xff1a; 1. 加载不上可能是哪些原因造成的&#xff1f; - A. 确保控制系统硬件已正确上电&#xff…