idea 部署项目到 docker 运行

1.在远程服务器上开启 docker 远程连接

$vim /usr/lib/systemd/system/docker.service
 
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

更新配置后,需要重启 docker 服务

$systemctl daemon-reload
$systemctl restart docker

测试是否开启远程 tcp 成功:http://ip:2375/version

2.在 IDEA 中下载 Docker 插件,选择 TCP Socket ,如果连成功会有提示: Connection successful

3.项目打包配置

<build>
        <plugins>
            <!--  docker 插件  -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>

                <!--  绑定 docker:build 到 maven 的 package 生命周期  -->
                <executions>
                    <execution>
                        <id>docker-build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <!--  插件的配置  -->
                <configuration>
                    <!--  构建的镜像的名字 :标签  -->
                    <imageName>${project.artifactId}:${project.version}</imageName>
                    <!--  存放dockerfile的路径  -->
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <!--  docker Host 地址,用插件在 initialize 阶段从 application.yml 解析  -->
                    <dockerHost>http://IP:2375</dockerHost>
                    <!--  SSL 认证证书地址,若开启 SSL 登录  -->
                    <!--  <dockerCertPath></dockerCertPath>  -->
                    <resources>
                        <resource>
                            <!--  使用什么资源来构建镜像(就是jar包),以及将镜像推送到容器的那个目录下  -->
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

        </plugins>
    </build>

4.项目根路径下创建 Dockerfile

FROM openjdk:8-jdk-alpine

MAINTAINER [author] [Howl@email.com]

ARG JAR_FILE=/target/*.jar

COPY ${JAR_FILE} app.jar

EXPOSE 9000

ENTRYPOINT ["java","-jar","/app.jar"]

打包完成后会自动生成 Docker 镜像, Idea - services 可以创建启动实例

参考

https://www.cnblogs.com/Howlet/p/15541935.html

posted @ 2021-11-12 14:09  byebai95  阅读(560)  评论(0编辑  收藏  举报