idea构建docker镜像并发布到服务器
1.配置docker远程访问
docker安装见CentOS安装Docker并制造jdk8基础镜像。
打开docker配置文件,修改ExecStart=/usr/bin/dockerd…这一行,添加:-H tcp://0.0.0.0:2375
# 打开docker配置
vim /usr/lib/systemd/system/docker.service
# 在ExecStart…行添加-H tcp://0.0.0.0:2375
# 刷新配置,重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证配置是否生效
# 注:如果服务器有防火墙,要将2375端口开放
curl http://localhost:info
2.idea配置
-
idea下载docker插件。
-
配置docker插件
这时idea底部就会出现一个services选项卡。
找到刚才创建的Docker1,右键连接,这时就会连接到服务器上的docker环境,可以看到docker中的镜像列表和正在运行的containers列表,点击container右侧就会显示出运行日志、docker run 参数等信息。
3.配置项目
-
创建Dockerfile文件
在项目根目录创建Dockerfile。
注:jdk:1.8镜像请事先准备,或参考CentOS安装Docker并制造jdk8基础镜像。
FROM jdk:1.8 VOLUME /tmp ADD target/test-1.0-SNAPSHOT.jar app.jar EXPOSE 9002 ENTRYPOINT ["java","-jar","app.jar"]
-
配置项目pom文件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <imageName>${project.artifactId}</imageName> <imageTags> <imageTag>latest</imageTag> </imageTags> <dockerDirectory>${project.basedir}</dockerDirectory> <dockerHost>http://192.168.137.5:2375</dockerHost> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
到这里idea配置docker环境就已经配置好了,我们点击mvn package命令,就会直接把新包发布到docker服务器上。
5.注
- package打包前请先运行mvn clean清理命令,否则会打包失败。