maven插件docker-maven-plugin打包镜像并发布到dockerHub

文章目录

  • 前言
  • 一、使用maven插件制作docker镜像
  • 二、发布到dockerHub
  • 总结


前言

如果我们的项目要在docker中运行,那么就必须要把我们的项目生成docker镜像,如果要实现远程安装,也就必须要把镜像发布到远程仓库里,如果我们没有自己的私有docker仓库,那么我们可以使用免费的。目前我们常见的免费仓库是dockerHub。今天给大家介绍如何将Java项目通过maven插件来制作docker镜像并自动发布到dockerHub平台上。


一、使用maven插件制作docker镜像

使用maven来构建docker镜像,我们需要使用docker-maven-plugin这个插件,我们加入到maven中:

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.2</version>
    <configuration>
        <imageName></imageName>
        <dockerDirectory>${project.basedir}</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
            </resource>
        </resources>
    </configuration>
</plugin>

同时我们还要编写Dockerfile在项目根目录下添加Dockerfile文件,内容如下:

FROM xldevops/jdk17-lts:latest
RUN mkdir -p /opt/test-docker
WORKDIR /opt/test-docker
COPY test-docker.jar /opt/test-docker/test-docker.jar
CMD ["java","-jar", "/opt/test-docker/test-docker.jar"]

二、发布到dockerHub

要将镜像发布到dockerHub,首先需要申请dockerHub账户,登录docker Hub网站,申请好账户后登录,然后点击下图所示:
在这里插入图片描述
然后填写仓库名称:
在这里插入图片描述

注意,这里dockerHub只能创建一个私有仓库,如果你要创建多个私有库,需要付费使用。公有库就是任何人都可以下载使用,而私有库在下载镜像时,需要登录你的账号才能下载。
创建后,我们来修改maven。

首先,我们要配置maven的server,修改maven的settings.xml文件,我们在servers标签里面添加我们的账号信息:

<server>
  <id>docker-hub</id>
  <username>你的docker hub账号</username>
  <password>你的docker hub密码</password>
  <configuration>
    <email>你的docker hub绑定的邮箱</email>
  </configuration>
</server>

修改好后,我们配置项目的pom.xml文件,在configuration下增加:

<configuration>
    <imageName>你的docker bub账号/test-docker:${version}</imageName>
    <dockerDirectory>${project.basedir}</dockerDirectory>
    <registryUrl>https://docker.io</registryUrl>
    <serverId>docker-hub</serverId>
    <resources>
        <resource>
            <targetPath>/</targetPath>
            <directory>${project.build.directory}</directory>
        </resource>
    </resources>
</configuration>

然后我们运行一键构建命令:

mvn clean -DskipTests=true package docker:build  -DpushImage

运行完成后,我们去docker hub网站查看:
在这里插入图片描述
可以看到,在docker hub平台上已经有了我们刚才构建的镜像,如果要使用这个镜像只需要pull就可以了。


总结

1、上面我们介绍了如何将镜像上传到docker hub,对应想要公开的项目,这里提供了可以免费使用的仓库。

2、如果我们有私有镜像,我们可以将镜像上传到私有库,私有库能更好的管理镜像以及对权限的控制,在后续的文章中我会给大家陆续介绍。

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

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

相关文章

旭华智能水文遥测终端机RTU

SV-RT8588低功耗测控终端&#xff0c;可采集、存储监测点传感器/仪表数据&#xff0c;通过4G/网口等通讯方式上传至监管平台&#xff0c;产品采用高性能32位处理器和工业级无线模块&#xff0c;接口类型丰富配置灵活&#xff0c;能满足不同场景下的各种需求&#xff1b;低功耗设…

JavaEE企业级应用软件开发—Spring框架入门学习笔记(一)

一、认识框架 实际开发中&#xff0c;随着业务的发展&#xff0c;软件系统变得越来越复杂&#xff0c;如果所有的软件都从底层功能开始开发&#xff0c;那将是一个漫长而繁琐的过程。此外&#xff0c;团队协作开发时&#xff0c;由于没有统一的调用规范&#xff0c;系统会出现大…

Vue3.4+element-plus2.5 + Vite 搭建教程整理

一、 Vue3Vite 项目搭建 说明&#xff1a; Vue3 最新版本已经基于Vite构建&#xff0c;关于Vite简介&#xff1a;Vite 下一代的前端工具链&#xff0c;前端开发与构建工具-CSDN博客 1.安装 并 创建Vue3 应用 npm create vuelatest 创建过程可以一路 NO 目前推荐使用 Vue R…

Django前后端分离之后端实践2

小实践&#xff1a;实现用户登录、注销及ORM管理功能、事务开启小实践 models.py class Books(models.Model):id models.CharField(primary_keyTrue,max_length20,verbose_name"图书ID")name models.CharField(max_length20,verbose_name图书名称)status models…

MySQL 小技巧:利用 xtrabackup 完全备份,增量备份及还原

案例&#xff1a;利用 xtrabackup 8.0 完全备份,增量备份及还原 MySQL8.0 在面对海量数据时&#xff0c;我们无法做到每天全量备份&#xff0c;因此 只能每周做一次全量备份。 而每天的话则进行增量备份&#xff0c;确保数据安全。 注意点&#xff1a;MySQL 8.0.26 版本对应需要…

基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的考编论坛网站的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

Netty重点——ByteBuf特别篇(十五)

ByteBuf为什么好用 在网络编程中&#xff0c;基本都是基于TCP报文的字节流的操作&#xff0c;所以Java的NIO又新增了ByteBuffer&#xff0c;只不过Java原生的ByteBuffer&#xff0c;非常难操作&#xff0c;也不能扩容缩容&#xff0c;所以Netty又重新封装了自己的Bytebuf&#…

力扣经典题:相交链表

题目分析&#xff1a;两个链表如果相交且不存在环&#xff0c;那么这两个链表从相交节点往后的节点都相同&#xff0c;所以&#xff0c;遍历一个链表&#xff0c;在遍历时不断遍历另一个链表&#xff0c;只要相等就可以返回了 struct ListNode *getIntersectionNode(struct Li…

2024智慧城市新纪元:引领未来,重塑都市生活

随着科技的飞速发展和数字化转型的不断深入&#xff0c;2024年智慧城市领域迎来了全新的发展格局。 这一年&#xff0c;智慧城市的建设更加注重人性化、可持续性和创新性&#xff0c;为城市居民带来了前所未有的便捷与舒适。以下将重点关注智慧城市的几个核心内容&#xff0c;…

LeetCode:14.最长公共前缀

14. 最长公共前缀 - 力扣&#xff08;LeetCode&#xff09; 目录 题目&#xff1a; 思路&#xff1a; 代码有限注释&#xff1a; 每日表情包&#xff1a; 题目&#xff1a; 思路&#xff1a; 仅有一种&#xff0c;LeetCode的四种解法&#xff0c;三种都是来水的&#…

单片机学习笔记---串口通信(1)

目录 通信的基本概念 通信的方式 1.按照数据传送的方式&#xff0c;可分为串行通信和并行通信。 1.1串行通信 1.2并行通信 2.按照通信的数据同步方式&#xff0c;又可以分为异步通信和同步通信。 2.1 异步通信 2.2同步通信 3.按照数据的传输方向&#xff0c;又可以分为…

C#(C Sharp)学习笔记_If条件判断语句【五】

前言&#xff1a; 本期学习的是编程语言中的主要语句&#xff1a;if-条件判断语句。在这里我们会学到&#xff1a;if语法&#xff0c;if-else&#xff0c;和if嵌套。话不多说&#xff0c;我们开始吧&#xff01; 什么是条件判断语句&#xff1f; 条件语句是用来判断给定的条件…

数据库学习案例20240206-ORACLE NEW RAC agent and resource关系汇总。

1 集群架构图 整体集群架构图如下&#xff1a; 1 数据库启动顺序OHASD层面 操作系统进程init.ohasd run启动ohasd.bin init.ohasd run 集群自动启动是否被禁用 crsctl enable has/crsGIHOME所在文件系统是否被正常挂载。管道文件npohasd是否能够被访问&#xff0c; cd /var/t…

Android14音频进阶:MediaPlayerService如何启动AudioTrack 下篇(五十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

因为PIL版本升级 # image image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.ANTIALIAS).convert(L) image image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.LANCZOS).convert(L)

Vue源码系列讲解——变化侦测篇【下】(Array的变化侦测)

目录 1. 前言 2. 在哪里收集依赖 3. 使Array型数据可观测 3.1 思路分析 3.2 数组方法拦截器 3.3 使用拦截器 4. 再谈依赖收集 4.1 把依赖收集到哪里 4.2 如何收集依赖 4.3 如何通知依赖 5. 深度侦测 6. 数组新增元素的侦测 7. 不足之处 8. 总结 1. 前言 上一篇文…

Unity类银河恶魔城学习记录3-4 EnemyBattleState P50

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Enemy.cs using System.Collections; using System.Collections.Generic; …

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有…

网络基础(三)

网络层与数据链路层 1.网络层2.IP2.1 基本概念2.2 协议头格式2.3 网段划分2.4 特殊的IP地址2.5IP地址的数量限制2.6 私有IP地址和公网IP地址2.7 路由 3.数据链路层4.以太网&#xff08;MAC帧协议&#xff09;4.1 认识以太网4.2 以太网帧格式4.3 认识MAC地址4.4 对比理解MAC地址…

【Unity游戏设计】跳一跳Day1

一、创建场景 Assets/Secnes:GameAssets创建游戏资源Prefabs存放预制体,Scripts脚本,Sounds声音,Textures图片资源,Materiais材质资源分类存放意识 二、场景建模 注意&#xff1a;alt鼠标左键切换视角 视角与摄像机视角保持一致&#xff1a;Main CameraGameObjectAlign Vie…