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 可以创建启动实例
参考