官網:https://spring.io/guides/gs/spring-boot-docker/
參考文檔:https://my.oschina.net/AmosWang/blog/2088358
阿里雲docker信息:https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
1.在項目的pom文件中添加:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}
</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>pheony</docker.image.prefix>
</properties>
在項目目錄下添加Dockerfile文件
FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
2.項目打包
idea直接右邊欄install即可或mvn install打包,生成文件在target目錄下
3.本地安裝docker 打開shell在項目目錄下運行:mvn clean package docker:build
錯誤:No plugin found for prefix 'docker' in the current project and in the plugin groups.
修改 maven 的配置文件 settings.xml
<pluginGroups> <pluginGroup>com.spotify</pluginGroup> </pluginGroups>
錯誤:Must specify baseImage if dockerDirectory
使用mvn clean package dockerfile:build
4.本地鏡像上傳倉庫,服務器上docker拉取
https://cr.console.aliyun.com/repository/cn-hangzhou/sycamore/sycamore/details
參照模板,此案例命令:
本地鏡像上傳 docker login --username=darksinco registry.cn-hangzhou.aliyuncs.com docker tag 854bcdabbe68 house docker tag 854bcdabbe68 registry.cn-hangzhou.aliyuncs.com/sycamore/sycamore:house docker push registry.cn-hangzhou.aliyuncs.com/sycamore/sycamore:house 服務器端拉取鏡像 docker login --username=darksinco registry.cn-hangzhou.aliyuncs.com docker pull registry.cn-hangzhou.aliyuncs.com/sycamore/sycamore:house
5.服務器運行項目
docker run -p 8090:8090 -t registry.cn-hangzhou.aliyuncs.com/sycamore/sycamore:house