使用Maven插件快捷打包发布远程Docker镜像 dockerfile-maven-plugin
采用插件一步打包发布本地的Maven项目为远程主机的Docker镜像,之前的docker-maven-plugin已经被废弃, dockerfile-maven-plugin是其替代,我们将采用最新的dockerfile-maven-plugin插件预备条件一台可以远程访问的Docker主机maven3以上开放远程Docker远程访问端口# vim /li...
·
采用插件一步打包发布本地的Maven项目为远程主机的Docker镜像,之前的docker-maven-plugin已经被废弃, dockerfile-maven-plugin是其替代,我们将采用最新的dockerfile-maven-plugin插件
预备条件
- 一台可以远程访问的Docker主机
- maven3以上
开放远程Docker远程访问端口
# vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2377 -H unix:///var/run/docker.sock
在配置项中修改该属性,该方式会直接暴露可以操控docker进程的端口,需要注意安全,修改完后重启docker服务
sudo service docker restart
在客户端添加系统环境变量参数
为项目添加插件
# Maven项目根目录下的pom文件
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
${docker.image.prefix}变量需要在pom的properties内定义
<properties>
<docker.image.prefix>hnister</docker.image.prefix>
</properties>
在项目根目录下添加Dockerfile文件
# dockerfile 基础配置
FROM daocloud.io/library/java:8u40-b22
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} /app/app.jar
WORKDIR /app/
EXPOSE 8889
ENTRYPOINT ["java","-jar","./app.jar"]
打包发布为远程docker镜像
mvn clean package dockerfile:build -DskipTests
第一次因为需要下载基础底层镜像会稍慢一点,之后构建都会很快,这样镜像就发布完成了,可以在远程查看到镜像
运行镜像
docker run -d -p 8889:8889 --name hnister-eureka-server hnister/hnister-eureka-server
更多推荐
已为社区贡献3条内容
所有评论(0)