首页 技术交流 java springboot项目docker环境下构建部署 正文

java springboot项目docker环境下构建部署

发布日期:2021年07月30日 15:34        阅读次数:215

      通过网上资料查找,大致可以分为两种方式,

      第一种: 首先将项目package打包成jar包,放到和dockerfile文件所在的目录下,执行docker build 和docker run即可:

       首先需要做一些配置:

       在pom.xml中添加以下配置:

        在properties下添加:

<!--docker构建配置1:配置properties--><docker.image.prefix>registry.aliyuncs.com/linhuatest</docker.image.prefix>

           添加后如图:

在plugins节点添加构建的plugin:

<plugin>    
<groupId>org.springframework.boot</groupId>    
<artifactId>spring-boot-maven-plugin</artifactId>    
<!--docker配置2:解决容器启动提示no main manifest attribute-->    
<configuration> 
<mainClass>com.macro.cloud.Oauth2AuthApplication</mainClass>    
</configuration>
<executions>
<execution> 
<goals>
<goal>repackage</goal> 
</goals>
</execution>
</executions>
</plugin>
<!--docker配置3:package打包用到 docker插件 新建dockerfile文件,将项目打包成jar后放到dockerfile所在目录下,然后执行docker build和docker run命令-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration> 
<imageName>${docker.image.prefix}/${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>

配置完后,点项目的src/main下新建一个docker目录,在这个目录下新建一个dockerfile


dockerfile:

 java:8
 /tmp/tomcat
 micro-oauth2-auth-1.0.0.jar springboot-auth.jar
 [,,,]

Dockfile配置文件详解

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录

项目的 jar 文件作为 “app.jar” 添加到容器的

ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source


以上步骤完成后,点击package打包,并且将打包后的jar文件复制到上面的docker目录下。然后在cmd命令行执行docker build和run命令,通过此种方式,本地已经构建并成功运行。

 

第二种:mvn clean package docker:build命令构建镜像

我本地用的是window环境,所以,首先需要先安装maven,maven官网下载地址:http://maven.apache.org/download.cgi

下载后解压是一个文件目录,配置好环境变量(这里可以百度具体教程),maven其实就是配置环境变量,配置完成后在cmd下执行一下:

mvn -version 检查一下是否安装正确。

mvn安装后首先在cmd下将目录定位到项目下:

执行mvc clean package docker:build命令

提示:No plugin found for prefix 'docker' in the current project and in the plugin groups

解决方法:在maven的安装目录conf/setting.xml中加入

<!--解决mvn bulid 报错问题-->
   <pluginGroup>com.spotify</pluginGroup>

如图:


再次执行mvc clean package docker:build命令,依然报错:

错误信息:

 Failed to execute goal com.spotify:docker-maven-plugin:1.0.0:build (default-cli) on project micro-oauth2-auth: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect -> [Help 1]

这里需要设置一下docker的配置:

设置之后在执行命令:


执行成功。

执行docker images命令查看刚才build的镜像:

然后执行docker run分配ip,实测请求接口成功。

评论:

共 0 页 0 条记录,当前为第 1 页