springboot 集成docker远程部署
1.Dockerfile文件(配置docker指令):
基础镜像使用的是Java
FROM java:8
VOLUME /tmp
ADD fset-admin.jar app.jar
EXPOSE 18001
ENTRYPOINT ["java", "-jar", "app.jar"]
2.Docker-Maven打包插件(POM)配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
<version>1.2.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<configuration>
<!-- docker目的地的地址:docker需要开启远程端口 -->
<dockerHost>http://127.0.0.1:2375</dockerHost>
<!--镜像名称以及版本号-->
<imageName>fset-admin</imageName>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--依赖的基础镜像-->
<baseImage>java</baseImage>
<!-- Dockerfile的位置-->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置-->
<workdir>/ROOT</workdir>
<entryPoint>["java", "-jar", ${project.build.finalName}.jar]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
3.SpringBoot项目打成Jar包
第一种:打包指令(多模块需要在跟目录下执行)
mvn clean package -DskipTests
第二种:采用idea工具打包(最好先执行clean,再执行package)
4.docker打成镜像指令:
第一种:build指令:(多模块在引入docker-maven-plugin的子模块下执行)
mvn docker:build
第二种:采用idea工具build
5.运行docker镜像
运行指令:
docker run -d -p:8080:8080 fset-admin
可能遇到的问题
1.Redis端口没有开启远程
解决方式:https://blog.csdn.net/poxiao58/article/details/115456455