Idea连接docker实现一键部署(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.sock12

在配置项中修改该属性,该方式会直接暴露可以操控docker进程的端口,需要注意安全,修改完后重启docker服务

sudo service docker restart1

在客户端添加系统环境变量参数

这里踩的坑就是系统变量设置后没有重启,导致一直打包失败

这里写图片描述

为项目添加插件

# 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>12345678910111213141516

${docker.image.prefix}变量需要在pom的properties内定义

<properties>
        <docker.image.prefix>hnister</docker.image.prefix>
    </properties>123

在项目根目录下添加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"]12345678

打包发布为远程docker镜像

mvn clean package dockerfile:build -DskipTests1

第一次因为需要下载基础底层镜像会稍慢一点,之后构建都会很快,这样镜像就发布完成了,可以在远程查看到镜像
这里写图片描述

运行镜像

docker run -d -p 8889:8889 --name hnister-eureka-server hnister/hnister-eureka-server1

这里写图片描述


🐞标题:Idea连接docker实现一键部署(dockerfile-maven-plugin)
👽作者:ruige
🐾地址:https://jjdhhc.com/articles/2020/11/27/1606442769802.html
🙏感恩:谢谢您的打赏与支持!中间图片是我的微信公众号,扫码关注哦!
支付宝支付 微信公众号 微信支付