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清理命令,否則會打包失敗。