0
点赞
收藏
分享

微信扫一扫

IDEA集成docker并快速部署Springboot项目

_阿瑶 2023-08-12 阅读 51
javaspring

前言:

现在docker是我们常用的服务部署方式了,在微服务中对于springboot部署到docker一般有两种方式

1、把jar包扔给运维同学,由他们进行编写dockerfile或者其他方式部署。(不推荐)

2、由开发同学处理后把镜像或者容器上传到服务器(企业级常用方式)

下面我们就通过demo来看下方式二

1、docker开放2375端口

开放2375端口
vim /lib/systemd/system/docker.service
将13行左右内容
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为下面
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker服务
systemctl daemon-reload
systemctl restart docker

防火墙放开2375端口,如果是云服务器记录配置安全规则
放开后可以在浏览器输入http://host:2375/version测试或者
curl http://host:2375/version

2、IDEA测试连接

upload successful

3、maven中增加plugin

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>${docker-maven-plugin.version}</version>
    <configuration>
        <dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
        <imageTags>
            <imageTag>${project.version}</imageTag>
            <imageTag>latest</imageTag>
        </imageTags>
        <!--强制在每次新的构建上覆盖镜像tags-->
        <forceTags>true</forceTags>
        <baseImage>${docker.baseImage}</baseImage>
        <!--配置挂载目录-->
        <volumes>${docker.volumes}</volumes>

        <entryPoint>["sh", "-c", "java ${docker.java.opts} ${docker.java.security.egd} -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>

4、生成镜像

upload successful

5、创建容器并测试结果

我们可以在Services控制页面看到已经生成了镜像,右键根据此镜像创建容器,并启动测试

亦可以直接使用docker命令启动

docker run -d -p 8010:8010 –name docker-demo jarvan/springboot-demo-docker

upload successful

浏览器输入:http://xxx.xxx:8081/ 进行测试

6、Dockerfile方式

在src/main/docker目录下建立Dockerfile文件

dockerfile内容

FROM java:8
VOLUME /test
ADD springboot-demo-docker-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]

maven的plugin插件内容更改

  <plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>${docker-maven-plugin.version}</version>
      <configuration>
          <dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
          <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
          <imageTags>
              <imageTag>${project.version}</imageTag>
              <imageTag>latest</imageTag>
          </imageTags>
          <!--强制在每次新的构建上覆盖镜像tags-->
          <forceTags>true</forceTags>
          <baseImage>${docker.baseImage}</baseImage>
          
          <!--使用dockerfile方式,在指定目录下创建Dockerfile文件-->
<dockerDirectory>src/main/docker</dockerDirectory>

          <resources>
              <resource>
                  <targetPath>/</targetPath>
                  <directory>${project.build.directory}</directory>
                  <include>${project.build.finalName}.jar</include>
              </resource>
          </resources>
      </configuration>
  </plugin>

7、源代码

代码已上传github https://github.com/JarvanBest/springboot-demo-docker.git

举报

相关推荐

0 条评论