环境准备:win10+docker
1.打开hyper-v
3.切换到docker的linux环境:右键桌面右下角小船图标
4.暴露2375端口
 
用户认证信息配置:
<configuration>
<repository>docker-repo.example.com:8080/organization/image</repository>
<tag>latest</tag>
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
</configuration>

setting.xml添加远程仓库信息

<servers>
<server>
<id>docker-repo.example.com:8080</id>
<username>me</username>
<password>mypassword</password>
</server>
</servers>

pom.xml配置

<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
<configuration>
//上下文路径配置,此处设置为项目根路径
<contextDirectory>${project.basedir}</contextDirectory>
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<repository>${registryUrl}/hush/${project.build.finalName}</repository>
<tag>${imageVersion}</tag>
//作为Dockerfile文件传入
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>

Dockerfile文件编写(放置在项目根路径)

FROM registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929

#添加本地jar包
RUN mkdir -p /home/admin/app/
RUN mkdir -p /home/admin/tomcat/
ENV CATALINA_HOME /home/admin/tomcat/
#
ARG JAR_FILE ADD target/${JAR_FILE} /home/admin/app/
#
#
#
# 将启动命令写入启动脚本 start.sh
RUN echo "$JAVA_HOME/bin/java -jar $JAVA_OPTS -Ddubbo.address.ip=$POD_IP -Djava.security.egd=file:/dev/./urandom /home/admin/app/${JAR_FILE} --spring.profiles.active=prod" > /home/admin/start.sh && chmod +x /home/admin/start.sh
WORKDIR $CATALINA_HOME
ENTRYPOINT ["/bin/bash", "/home/admin/start.sh"]

打包镜像:

[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< org.hush.k8s:provider >------------------------
[INFO] Building provider 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- dockerfile-maven-plugin:1.4.4:build (default-cli) @ provider ---
[INFO] Building Docker context D:\2018\my_pro\demo\provider
[INFO]
[INFO] Image will be built as registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
[INFO]
[INFO] Step 1/9 : FROM registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
[INFO]
[INFO] Pulling from hush/basecontainer
[INFO] Digest: sha256:35cdf59cd63e8f47cbb5ab595ad327f6ff2df8b910e34d958f83b942d072b713
[INFO] Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
[INFO] ---> a8440ec1b0aa
[INFO] Step 2/9 : RUN mkdir -p /home/admin/app/
[INFO]
[INFO] ---> Using cache
[INFO] ---> c88518200882
[INFO] Step 3/9 : RUN mkdir -p /home/admin/tomcat/
[INFO]
[INFO] ---> Using cache
[INFO] ---> 0f9dceff2421
[INFO] Step 4/9 : ENV CATALINA_HOME /home/admin/tomcat/
[INFO]
[INFO] ---> Using cache
[INFO] ---> 0c8108c0b64e
[INFO] Step 5/9 : ARG JAR_FILE
[INFO]
[INFO] ---> Using cache
[INFO] ---> 5df43a413985
[INFO] Step 6/9 : ADD target/${JAR_FILE} /home/admin/app/
[INFO]
[INFO] ---> Using cache
[INFO] ---> 5763c04c6c27
[INFO] Step 7/9 : RUN echo '$JAVA_HOME/bin/java -jar $JAVA_OPTS -Ddubbo.address.ip=$POD_IP -Djava.security.egd=file:/dev/./urandom "/home/admin/app/dubbo_provider.jar" --spring.profiles.active=prod' > /home/admin/start.sh && chmod +x /home/admin/start.sh
[INFO]
[INFO] ---> Using cache
[INFO] ---> 2789f23853b2
[INFO] Step 8/9 : WORKDIR $CATALINA_HOME
[INFO]
[INFO] ---> Using cache
[INFO] ---> b87c1ad13e7d
[INFO] Step 9/9 : ENTRYPOINT ["/bin/bash", "/home/admin/start.sh"]
[INFO]
[INFO] ---> Using cache
[INFO] ---> 5debdfca2614
[INFO] Successfully built 5debdfca2614
[INFO] Successfully tagged registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
[INFO]
[INFO] Detected build of image with id 5debdfca2614
[INFO] Building jar: D:\2018\my_pro\demo\provider\target\dubbo_provider-docker-info.jar
[INFO] Successfully built registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.552 s
[INFO] Finished at: 2018-10-01T11:45:37+08:00
[INFO] ------------------------------------------------------------------------

在容器上可以执行docker images|grep <相应镜像名称>

docker push:

[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< org.hush.k8s:provider >------------------------
[INFO] Building provider 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- dockerfile-maven-plugin:1.4.4:build (default-cli) @ provider ---
[INFO] Building Docker context D:\2018\my_pro\demo\provider
[INFO]
[INFO] Image will be built as registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
[INFO]
[INFO] Step 1/9 : FROM registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
[INFO]
[INFO] Pulling from hush/basecontainer
[INFO] Digest: sha256:35cdf59cd63e8f47cbb5ab595ad327f6ff2df8b910e34d958f83b942d072b713
[INFO] Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/hush/basecontainer:20180929
[INFO] ---> a8440ec1b0aa
[INFO] Step 2/9 : RUN mkdir -p /home/admin/app/
[INFO]
[INFO] ---> Using cache
[INFO] ---> c88518200882
[INFO] Step 3/9 : RUN mkdir -p /home/admin/tomcat/
[INFO]
[INFO] ---> Using cache
[INFO] ---> 0f9dceff2421
[INFO] Step 4/9 : ENV CATALINA_HOME /home/admin/tomcat/
[INFO]
[INFO] ---> Using cache
[INFO] ---> 0c8108c0b64e
[INFO] Step 5/9 : ARG JAR_FILE
[INFO]
[INFO] ---> Using cache
[INFO] ---> 5df43a413985
[INFO] Step 6/9 : ADD target/${JAR_FILE} /home/admin/app/
[INFO]
[INFO] ---> Using cache
[INFO] ---> 5763c04c6c27
[INFO] Step 7/9 : RUN echo '$JAVA_HOME/bin/java -jar $JAVA_OPTS -Ddubbo.address.ip=$POD_IP -Djava.security.egd=file:/dev/./urandom "/home/admin/app/dubbo_provider.jar" --spring.profiles.active=prod' > /home/admin/start.sh && chmod +x /home/admin/start.sh
[INFO]
[INFO] ---> Using cache
[INFO] ---> 2789f23853b2
[INFO] Step 8/9 : WORKDIR $CATALINA_HOME
[INFO]
[INFO] ---> Using cache
[INFO] ---> b87c1ad13e7d
[INFO] Step 9/9 : ENTRYPOINT ["/bin/bash", "/home/admin/start.sh"]
[INFO]
[INFO] ---> Using cache
[INFO] ---> 5debdfca2614
[INFO] Successfully built 5debdfca2614
[INFO] Successfully tagged registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
[INFO]
[INFO] Detected build of image with id 5debdfca2614
[INFO] Building jar: D:\2018\my_pro\demo\provider\target\dubbo_provider-docker-info.jar
[INFO] Successfully built registry.cn-hangzhou.aliyuncs.com/hush/dubbo_provider:1.0.4
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.552 s
[INFO] Finished at: 2018-10-01T11:45:37+08:00
[INFO] ------------------------------------------------------------------------

在镜像仓库可以直接查看

  

  

dockerfile-maven plugin自动镜像制作并发布的更多相关文章

  1. Docker系列-(2) 镜像制作与发布

    上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ...

  2. docker镜像制作及发布

    以centos为例. 主要内容:安装docker,制作镜像,发布镜像. 安装docker 1. 安装docker yum install -y docker 等待一会,安装成功,查看安装列表 2. 启 ...

  3. Docker教程:镜像构建和自动镜像构建dockerfile

    http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...

  4. 基于Dockerfile镜像制作的基本操作

    一.使用Dockerfile制作镜像 前面的博客中已经介绍了如何基于容器制作镜像,此方法的原理是使用一个正在运行的容器,根据生产所需进行配置更改等操作后,使其满足生产环境,再将这个容器打包制作为镜像, ...

  5. 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作

    本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏 ...

  6. MySQL、MongoDB、Redis数据库Docker镜像制作

    MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...

  7. openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

    之所以要只有C盘分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入   参考http://www.iyunv.com/thread-45149-1-1.html的灵感   ...

  8. Spring Boot Maven Plugin(一):repackage目标

    简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...

  9. Docker镜像管理基础与基于容器的镜像制作示例

    一.Docker镜像 Docker镜像是启动Docker容器的一个非常重要的组件.Docker各组件之间的关系如图: Docker镜像含有启动容器所需要的文件系统及其内容,因此Docker镜像用于创建 ...

随机推荐

  1. Linux 系统信息查询大全

    Linux常用系统命令 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /etc/redhat-release ...

  2. STM32 M0之SPI

    从M3到M0,可能SPI的接口函数大致类似,但是细节略有不同 仔细观察寄存器描述,虽然个别存在差异,但是真心不知道竟然有太多的“玄机” 这次的问题主要出在了数据宽度上: 1. M3/M4的数据宽度支持 ...

  3. 初识 docker

    一.安装Docker 我使用的是腾讯云上的centos 7. docker -v 查看是否已经安装有docker 如果有 systemctl stop docker 停止docker服务 查看当前版本 ...

  4. C++零散知识笔记本

    目录 1.符号 1.1符号输出 1.2运算符 2.基本内置类型 wchar_t 3.内置类型所占字节数 内置类型的简写 4.变量的本质 变量与指针的故事 (1)malloc函数 (2)new关键字 5 ...

  5. Scala 孤立对象和单例对象方法体的用法和例子

    [学习笔记] 1  以object关键字修饰一个类名,这种语法叫做孤立对象,这个对象是单例的. 相当于将单例类和单例对象同时定义.相当于java中的单例,即在内存中只会存在一个Test3实例.创建一个 ...

  6. (二十二)自定义简化版JDBC(Dbutils框架的设计思想)

    目录 元数据概念 DataBaseMetaData ParameterMetaData ResultSetMetaData 编写简化版的JDBC O-R Mapping 概念 自定义简化版JDBC 元 ...

  7. 在windows系统下打包linux平台运行的go程序

    在windows系统下打包linux平台运行的go程序 1.先在main.go下打包成.exe可执行程序测试代码是否正确 //cd到main.go目录 go build //打包命令 如果打包成功则表 ...

  8. python以不同方式打印输出九九乘法表

    参考:http://www.cnblogs.com/suiy-160428/p/5594389.htmlpython输出 9*9 乘法口诀表 矩形输出九九乘法表: for i in range(1,1 ...

  9. 一文让你明白Redis持久化

    网上虽然已经有很多类似的介绍了,但我还是自己总结归纳了一下,自认为内容和细节都是比较齐全的. 文章篇幅有 4k 多字,货有点干,断断续续写了好几天,希望对大家有帮助.不出意外地话,今后会陆续更新 Re ...

  10. 【AC自动机】文本生成器

    [题目链接] https://loj.ac/problem/10063 [题意] 给出长度为m,n个模式串,请问只要长度为m的串中有一个模式串就算是可读. [分析] 其实如果直接分析全部可读的情况,一 ...