idea将springboot项目打包成docker并部署到远端服务器

一、服务器docker配置

1、配置服务器端docker远程连端口

编辑docker.service文件,添加-H tcp://0.0.0.0:2375参数

vi /usr/lib/systemd/system/docker.service

img

2、重启docker

systemctl daemon-reload
service docker restart

3、测试端口连接是否正常

curl http://localhost:2375/version

img

二、idea开发环境配置

1、安装docker插件

img

2、通过docker插件连接服务器上的docker容器

img

连接成功后可以看到server中查看docker容器

img

3、在项目中/src/main下创建docker文件夹和dockerfile文件

img

#基础镜像,如果本地没有,会从远程仓库拉取。
FROM java:8
 
##这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层,可以多个
VOLUME ["/tmp"]
 
# 将jar包添加到容器中并更名为app.jar
ADD *.jar app.jar
 
#拷贝本地文件到镜像中#复制上下文目录下的target/demo-1.0.0.jar 到容器里
#COPY ${JAR_FILE} penguin-log-web.jar
 
#指定容器启动时要执行的命令,但如果存在CMD指令,CMD中的参数会被附加到ENTRYPOINT指令的后面
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar", "--spring.profiles.active=test"]

4、在项目pom.xml文件中添加docker插件

<!-- docker 插件 -->
           <plugin>
               <groupId>com.spotify</groupId>
               <artifactId>docker-maven-plugin</artifactId>
               <version>1.0.0</version>
               <configuration>
                   <imageName>${project.artifactId}</imageName>
                   <!--docker文件所在的目录-->
                   <dockerDirectory>src/main/docker</dockerDirectory>
                   <resources>
                       <resource>
                           <targetPath>/</targetPath>
                           <directory>${project.build.directory}</directory>
                           <include>${project.build.finalName}.jar</include>
                       </resource>
                   </resources>
               </configuration>
           </plugin>
           <!--docker需要的jar的复制操作-->
           <plugin>
               <artifactId>maven-antrun-plugin</artifactId>
               <executions>
                   <execution>
                       <phase>package</phase>
                       <configuration>
                           <tasks>
                               <copy todir = "src/main/docker"
                                     file = "target/${project.artifactId}-${project.version}.${project.packaging}"/>
                           </tasks>
                       </configuration>
                       <goals>
                           <goal>run</goal>
                       </goals>
                   </execution>
               </executions>
           </plugin>






扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论