在docker中部署springboot项目
首先需要配置docker的远程连接
修改docker的服务配置
vi /usr/lib/systemd/system/docker.service
在此项中添加:
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
按 i 进行编辑,编辑完成后按esc退出编辑,输入 :wq 来进行保存
重启docker:
systemctl daemon-reload
service docker restart
此时在idea中应该可以远程连接到docker
在idea中安装docker插件
在这里可以连接自己的docker
若无法访问请查看打开防火墙2375端口
连接成功后
我们需要在项目中新建一个文件夹Dockerfile
Dockerfile中代码:
FROM java:8
VOLUME /tmp
ADD target/test1-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
(注意第三行要根据自己项目来写,若之后在docker中创建容器时第三步出错请回来修改此处)例如我打包好的的项目目录:
再修改pom.xml配置文件
在plugins中添加如下依赖:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--添加自己的启动类路径!-->
<mainClass>com.example.test1.Test1Application</mainClass>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<!-- 这是将 jar包copy 到 docker目录下-->
<copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
此时在自己的运行配置中添加新的运行
之后对springboot项目进行打包
打包完成后点击使用docker运行
在这时就可以看见docker插件在自动对项目进行上传和容器的创建
这时容器运行成功后就可以在浏览器用 ip:+端口来访问这个项目
若遇到容器创建成功但启动失败:请点击此处