通过maven插件构建docker镜像
通过maven插件构建docker镜像:
1、在pom.xml 中添加maven的docker插件。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>jingdata/microservice-discovery-eureka:0.0.1</imageName>
<baseImage>java</baseImage>
<entryPoint>["java","-jar","/{project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2、构建docker镜像: mvn clean package docker:build
3、执行docker images 查看刚构建的镜像
4、启动镜像: docker run -d -p 8761:8761 jingdata/microservice-discovery-eureka:0.0.1
5、访问测试: 128.0.0.1:8761
插件读取dockerfile进行构建:
1、在src/main目录下,新建文件夹docker,在文件夹中新建一个Dockerfile文件。
FROM java:8
VOLUME /tmp
ADD microservice-discovery-erueka-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
修改pom.xml文件:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>jingdata/microservice-discovery-eureka:0.0.2</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2.将插件绑定在没某个phase执行
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<imageName>jingdata/microservice-discovery-eureka:0.0.3</imageName>
<baseImage>java</baseImage>
<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
3.推送镜像
(1)、修改maven的全局配置文件settings.xml,在其中添加docker hub的用户信息。
<server>
<id>docker-hub</id>
<username>docker-hub的用户名</username>
<password>docker-hub的密码</password>
<configuration>
<email>docker-hub的邮箱</email>
</configuration>
</server>
(2)、修改pom.xml文件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>jingdata/microservice-discovery-eureka:0.0.4</imageName>
<baseImage>java</baseImage>
<entryPoint>["java","-jar","/{project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!-- 与maven配置文件settings中配置的server id一致,用于推送镜像--->
<serverId>docker-hub</serverId>
</configuration>
</plugin>
(3)、添加pushImage标示,推送镜像
mvn clean package docker:build -DpushImage
(4)、推送到私有仓库地址:
<imageName>localhost:5000/jingdata/microservice-discovery-eureka:0.0.4</imageName>

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
使用dockerfile构建docker镜像
使用dockerfile构建docker镜像例子: 1、最简单的依靠dockerfile构建docker镜像的例子: (1)、准备一个文件,命名为Dockerfile: FROM nginx RUN echo '<h1>最简单例子,依靠Dockerfile 构建docker镜像</h1>' > /usr/share/nginx/html/index.html (2)、构建镜像命令,(.)表示当前路径: docker build -t nginx:li . (3)、启动一个docker容器: docker run -d -p 92:80 nginx:li 2、将springboot项目构建成docker镜像: (1)、将springboot项目打包成jar包。 (2)、在jar包所在目录,新建Dockerfile文件: touch Dockerfile (3)、编辑Dockerfile文件内容: #基于哪个镜像 FROM java:8 #将本地文件夹挂载到当前容器 VOLUME /tmp #复制文件到容器,也可以直接写成 ADD microservice-d...
-
下一篇
新手怎么选择阿里云服务器ECS的规格配置?
无论是企业还是个人用户,如果需要在网上开展业务都需要有自己的网站或者APP客户端、小程序等。要搭建网站或者网络应用就需要有一个主机或者服务器作为容器,考虑到性价比大家现在都喜欢选择云服务器。但是新手怎么选择云服务器配置能既节约成本又满足应用需求呢? 一、选择离用户更近的云服务器地域: 影响网站访问速度的一个重要因素是服务器节点所在地域。也就是说如果服务器节点地域离你目标客户群地区越接近,那么你网站的访问速度就会越快。所以,选择云服务器地域的原则就是尽量选择自己用户最近的地域节点。 下面以阿里云的ECS云服务器为例说明。为什么要以阿里云主机为例? 因为阿里云的ECS云服务器是国内地域节点最多最全的云服务器,可选择的余地要更大一些,不论你目标用户在哪里,都可以找到适合自己的云服务器所在地域。 首先打开阿里云:www.aliyun.com 然后我们找到ECS的地域选择,可以看到多达20余个地域节点,不但包括国内节点,而且还有香港、新加坡等、印尼等东南亚节点以及欧洲、美洲、中东、印度等国外节点,不管你是面向国内用户,还是面向国外用户都可以找到最快的云服务器地域。 1、假如我们网站主要面向南方客...
相关文章
文章评论
共有0条评论来说两句吧...