一、springboot与docker整合
a.创建Dockerfile
FROM java
MAINTAINER "Wing"<[email protected]>
ADD @[email protected] app.jar
EXPOSE 8080
CMD java -jar app.jar
报错:missing :
解决办法:修改Dockerfile
FROM java
MAINTAINER "Wing"<[email protected]>
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "${project.build.finalName}.jar"]
b.项目中pom添加docker plugin
<docker.registry>172.22.64.45:50000</docker.registry>
具体配置如下:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<imageName>${docker.registry}/${project.groupId}/${project.artifactId}:${project.version}</imageName>
<dockerDirectory>${project.build.outputDirectory}</dockerDirectory>
<!-- <dockerHost>http://172.22.64.45:50000</dockerHost>-->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>
${project.build.directory}
</directory>
<include>
${project.build.finalName}.jar
</include>
</resource>
</resources>
</configuration>
</plugin>
c.执行构建命令
在linux中编译,在windows编译有些问题
mvn package docker:build -X
d.push镜像 mvn package docker:build -X -DpushImage
参考:https://blog.csdn.net/aixiaoyang168/article/details/77453974
https://blog.csdn.net/fragrant_no1/article/details/84326694
e.启动
docker run -i -t ef5d1bb3c4bc exec /bin/bash
<targetPath>/</targetPath>
EXPOSE 设置可被暴漏的端口号,如果在Dockerfile里面设置,在外网访问一直不通
docker run -d -p 18080:8080 23b670831ef9