【docker】maven 打包docker的插件学习

docker-maven-plugin

GitHub地址:https://github.com/spotify/docker-maven-plugin

您可以使用此插件创建一个 Docker 映像,其中包含从 Maven 项目构建的工件。例如,Java 服务的构建过程可以输出运行该服务的 Docker 映像。

该插件是 Spotify 使用的最初 Maven 插件,用于从 Java 服务构建 Docker 镜像。它最初创建于 2014 年,当时我们第一次开始尝试 Docker。该插件能够 Dockerfile根据 pom.xml 文件中的配置为您生成图像、使用/FROM添加的资源等。ADDCOPY

随着时间的推移,我们在 Spotify 意识到从 Java 项目构建 Docker 镜像的最简单方法是让开发人员编写Dockerfile. 该插件围绕生成 Dockerfile、将项目目录复制到“暂存”目录以用作 Docker 构建上下文等的行为,最终导致我们的用户产生很多不必要的困惑,这些困惑源于引入额外的抽象和需求用于在 Docker 提供的基础上进行配置。

This repository has been archived by the owner on Mar 21, 2022. It is now read-only.

该存储库已由所有者于 2022 年 3 月 21 日存档。它现在是只读的。

​状态:不活跃,我们建议您改用dockerfile-maven。​

dockerfile-maven

GitHub地址:GitHub - spotify/dockerfile-maven: MATURE: A set of Maven tools for dealing with Dockerfiles

用法:https://github.com/spotify/dockerfile-maven/blob/master/docs/usage.md

This repository has been archived by the owner on Apr 1, 2022. It is now read-only.

该存储库已由所有者于 2022 年 3 月 31 日存档。它现在是只读的。

状态:成熟

目前,我们不会开发或接受新功能,甚至不会修复非关键错误。

这个 Maven 插件将 Maven 与 Docker 集成。

设计目标是:

  • 不要做任何花哨的事情。 Dockerfiles 是构建 Docker 项目的方式;这就是这个插件的用途。它们是强制性的。
  • 使 Docker 构建过程与 Maven 构建过程集成。如果绑定默认阶段,当您键入 时mvn package,您将获得一个 Docker 映像。当您输入 时mvn deploy,您的图像就会被推送。
  • 让目标记住你在做什么。您可以稍后再输入,不会mvn dockerfile:build有任何问题。这也消除了对类似的东西的需要;相反,你可以直接说.mvn dockerfile:tagmvn dockerfile:pushmvn dockerfile:build -DalsoPushmvn dockerfile:build dockerfile:push
  • 与 Maven 构建反应器集成。您可以在另一个项目中依赖一个项目的 Docker 镜像,Maven 会按照正确的顺序构建项目。当您想要运行涉及多个服务的集成测试时,这非常有用。

该插件需要 Java 7 或更高版本以及 Apache Maven 3 或更高版本(dockerfile-maven-plugin <=1.4.6 需要 Maven >= 3,对于其他情况,Maven >= 3.5.2)。要运行集成测试或在实践中使用该插件,需要有效的 Docker 设置。

例子

配置实际的插件来构建您的图像mvn package并使用 推送它mvn deploy。当然你也可以 mvn dockerfile:build明确地说。

<plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>${dockerfile-maven-version}</version><executions><execution><id>default</id><goals><goal>build</goal><goal>push</goal></goals></execution></executions><configuration><repository>spotify/foobar</repository><tag>${project.version}</tag><buildArgs><JAR_FILE>${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration>
</plugin>

Dockerfile如下所示:

FROM openjdk:8-jreMAINTAINER chengxuyuanshitangENTRYPOINT ["/usr/bin/java", "-jar", "/usr/share/demo/demo.jar"]# Add Maven dependencies (not shaded into the artifact; Docker-cached)
ADD target/lib           /usr/share/demo/libARG JAR_FILE
ADD target/${JAR_FILE} /usr/share/demo/demo.jar

构建生命周期

mvn package
mvn dockerfile:build
mvn verify
mvn dockerfile:push
mvn deploy
Maven 目标
目标描述默认阶段
dockerfile:build从 Dockerfile 构建 Docker 映像。package
dockerfile:tag标记 Docker 映像。package
dockerfile:push将 Docker 映像推送到存储库。deploy
跳过绑定到 Maven 阶段的 Docker 目标
Maven选项它有什么作用?默认值
dockerfile.skip禁用整个 dockerfile 插件;所有目标都变得无效。FALSE
dockerfile.build.skip禁用构建目标;它变成了无操作。FALSE
dockerfile.tag.skip禁用标签目标;它变成了无操作。FALSE
dockerfile.push.skip禁用推送目标;它变成了无操作。FALSE

例如,要跳过整个 dockerfile 插件:

mvn clean package -Ddockerfile.skip
构建阶段
Maven选项它有什么作用?必需的默认值
dockerfile.contextDirectory包含要构建的 Dockerfile 的目录。yesnone
dockerfile.repository用于命名构建镜像的存储库nonone
dockerfile.tag构建 Dockerfile 时要应用的标记,该标记将附加到存储库。nolatest
dockerfile.build.pullNewerImage自动更新基础镜像。noTRUE
dockerfile.build.noCache构建镜像时不要使用缓存。noFALSE
dockerfile.build.cacheFromDocker 镜像用作缓存来源。pullNewerImage如果本地不存在或存在则提前拉取falsenonone
dockerfile.buildArgs自定义构建参数。nonone
dockerfile.build.squash将新构建的层压缩为一个新层(实验 API 1.25+)。noFALSE

下面是最近更新的文章:

【docker 】 安装docker(centOS7)-CSDN博客

【docker】常用命令-CSDN博客

【docker】centos7配置docker镜像加速_docker仓库加速地址-CSDN博客

【docker】Hello World-CSDN博客

【docker 】Compose 使用介绍_docker compose 使用-CSDN博客

【docker 】Compose安装-CSDN博客

【docker 】Dockerfile指令学习-CSDN博客

【docker】网络使用和配置_docker 启动使用host mode-CSDN博客

【docker】数据管理-CSDN博客

【docker】安装openjdk-CSDN博客

【docker】Spring Boot3.x 打包 Docker容器-CSDN博客

【docker】docker compose 搭建私服-CSDN博客

【docker】开放Docker端口-CSDN博客

【docker】maven 打包docker的插件学习-CSDN博客

【docker 】Windows10安装Docker Desktop - WSL update failed-CSDN博客




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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(12)配置Notch滤波器(一)

文章目录 前言 1 陷波滤波器设置概述 2 启用陷波滤波器 3 陷波滤波器控制类型 4 确定陷波滤波器的中心频率 5 滤除的谐波数量 6 检查陷波滤波器的有效性 7 双层/三层陷波 前言 ArduPilot 支持两个陷波滤波器&#xff0c;对于电机来说&#xff0c;其滤波频率可以与电机…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11-1.12

目录 第二门课: 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周&#xff1a;深度学习的 实践层面 (Practical aspects of Deep Learning)1.11 神经网络的权重…

xftp破解版?No!xftp平替开源工具✔

文章目录 一、背景说明二、WindTerm介绍三、简单使用说明3.1 新建一个ssh连接窗口![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bfbe5114916e4a7e94ca0f9ceb05ca37.png)3.2 输入主机ip和端口号3.3 点击Continue3.4 输入密码3.5 登入成功3.6 下载文件到本地3.7 上…

网络安全之弱口令与命令爆破(下篇)(技术进阶)

目录 一&#xff0c;什么是弱口令&#xff1f; 二&#xff0c;为什么会产生弱口令呢&#xff1f; 三&#xff0c;字典的生成 四&#xff0c;九头蛇&#xff08;hydra&#xff09;弱口令爆破工具 1&#xff0c;破解ssh登录密码 2&#xff0c;破解windows登录密码 3&#xf…

展会进行时|百华鞋业亮相第135届中国进出口商品交易会(广交会)三期,展会现场人气爆棚!

第135届中国进出口商品交易会&#xff08;广交会&#xff09;三期如约而至&#xff0c;本届展会汇集了来自世界各地的参展企业&#xff0c;带来各行业前沿技术与新产品展出。百华鞋业携足部安防职业鞋、户外作训靴等系列新产品强势亮相展会&#xff0c;位于2.2 G25-26 H23-24的…

如何免费体验 gpt2-chatbot

如何免费体验 gpt2-chatbot 就在五一假期期间&#xff0c;一个神秘模型在没有任何官方文件的情况下突然发布。发布后不到 12 小时就立即引起人工智能爱好者和专家们的关注。这个名为“gpt2-chatbot”的神秘新模型凭借其令人印象深刻的能力轰动全球。有人猜测它可能是 OpenAI 的…

【Linux】进程exec函数族以及守护进程

一.exec函数族 1.exec函数族的应用 在shell下敲shell的命令都是在创建shell的子进程。而我们之前学的创建父进程和子进程代码内容以及通过pid与0的关系来让父子进程执行不同的代码内容都是在一个代码文件里面&#xff0c;而shell是如何做到不在一个文件里面写代码使之成为子进…

Centos7环境下搭建SVN服务器、迁移svn到其他的服务器

简介&#xff1a; SVN是subversion的缩写&#xff0c;是一个开放源代码的版本控制系统&#xff0c;通过采用分支管理系统的高效管理&#xff0c;简而言之就是用于多个人共同开发同一个项目&#xff0c;实现共享资源&#xff0c;实现最终集中式的管理。 一、简介 参考链接&…

2024年3月Scratch图形化编程等级考试(二级)真题试卷

2024年3月Scratch图形化编程等级考试&#xff08;二级&#xff09;真题试卷 选择题 第 1 题 默认小猫角色&#xff0c;Scratch运行程序后&#xff0c;舞台上出现的图形是&#xff1f;&#xff08; &#xff09; A. B. C. D. 第 2 题 下列哪个Scratch选项可以使虫子移到…

Banana Pi 推出采用瑞芯微 RK3576芯片设计开源硬件:BPI-M5 Pro

Banana Pi BPI-M5 Pro采用第二代8nm高性能AIOT平台瑞芯微RK3576&#xff0c;拥有6 TOPS算力NPU&#xff0c;支持最高32GB大内存。支持8K视频编解码&#xff0c;提供双千兆网口、WiFi 6 & BT5、多种视频输出等丰富接口。兼容多种操作系统&#xff0c;适用于基于ARM的PC、边缘…

数列与级数(上)

数列与极限 收敛序列 3.1 定义 度量空间 X X X中的序列 { p n } \left\{ p_{n} \right\} {pn​}叫做收敛的(converge)&#xff0c;如果有一个下述性质的点 p ∈ X p \in X p∈X&#xff1a;对于每个 ε > 0 \varepsilon >0 ε>0&#xff0c;有一个正整数 N N N&…

网盘——移动文件

本文主要讲解网盘文件操作部分的移动文件&#xff0c;具体步骤如下&#xff1a; 目录 1、实施步骤&#xff1a; 2、代码实现 2.1、在book里面添加移动文件的按钮 2.2、将他添加到界面 2.3、添加移动文件的槽函数 2.4、关联槽函数 2.5、在book中添加成员函数&#xff0c…

全量知识系统 程序详细设计 之 “Component总线结构” (QA百度文库)

Q1. 今天想聊聊 全量知识系统&#xff08;以下简称全知系统&#xff09;中的 “Component总线结构” 全量知识系统&#xff0c;即全知系统&#xff0c;是一个综合性的平台&#xff0c;旨在整合、处理和应用各类知识。在这个系统中&#xff0c;“Component总线结构”是一个核心…

【opencv4.8.1 源码编译】windows10 OpenCV 4.8.1源码编译并实现 CUDA 12加速

Windows 下使用 CMake3.29.2 Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块cuda12.0teslaT4显卡 记录自己在编译时踩过的坑&#xff0c;避免下次再犯或者给有需要的人。 在实际使用中&#xff0c;如果是对处理时间要求比较高的场景&#xff0c;使用OpenCV处理图片数据很…

经济法期末考试题

《经济法》期末大作业 开卷 班级 管院金融学辅修&#xff08;24春&#xff09; 姓名 学号 答案请写在后边答题纸上 题目 一 二 三 总分 成绩 名词解释&#xff08;每小题5分&#xff0c;8小题&#xff0c;共40分&#xff09; 经济法…

什么是Dos攻击和DDos攻击了?

Dos攻击就是一个计算机进行攻击,一个计算机发出多次请求和获取资源等请求,从而使得服务器的资源都用于处理这个计算机发出的请求了,没有资源被其他用户服务了,甚至可能直接导致服务器崩溃了 DDos攻击就是和Dos攻击的区别就是其攻击升级了,不再是一台计算机,而是被病毒感染的多台…

锂电池SOH预测 | 基于CNN的锂电池SOH预测(附matlab完整源码)

锂电池SOH预测 锂电池SOH预测完整代码锂电池SOH预测 锂电池的SOH(状态健康度)预测是一项重要的任务,它可以帮助确定电池的健康状况和剩余寿命,从而优化电池的使用和维护策略。 SOH预测可以通过多种方法实现,其中一些常用的方法包括: 容量衰减法:通过监测电池的容量衰减…

微图乐 多种装B截图一键制作工具(仅供娱乐交流)

软件介绍 采用exe进程交互通信。全新UI界面&#xff0c;让界面更加清爽简约。支持zfb、VX、TX、Yin行、Dai款、游戏等图片生成&#xff0c;一键超清原图复制到剪辑板&#xff0c;分享给好友。适用于提高商家信誉度&#xff0c;产品销售额度。装逼娱乐&#xff0c;用微图乐。图…

数据结构(十)----图

目录 一.图的概念 1.图的定义 2.图的类别 3.图的性质 4.几种特殊形态的图 二.图的存储结构 1.邻接矩阵&#xff08;顺序存储&#xff09; 2.邻接表&#xff08;顺序链式存储&#xff09; 3.十字链表 4.邻接多重表 四.图的遍历 1.广度优先遍历&#xff08;BFS&#…

STM32 F103C8T6学习笔记17:类IIC通信(SMBus协议)—MLX90614红外非接触温度计

今日学习配置MLX90614红外非接触温度计 与 STM32 F103C8T6 单片机的通信 文章提供测试代码讲解、完整工程下载、测试效果图 本文需要用到的大概基础知识&#xff1a;1.3寸OLED配置通信显示、IIC通信、 定时器配置使用 这里就只贴出我的 OLED驱动方面的网址链接了&#xff1a…