1. 程式人生 > >SpringBoot專案(單模組、多模組)使用docker容器執行jar包映象(踩坑)

SpringBoot專案(單模組、多模組)使用docker容器執行jar包映象(踩坑)

SpringBoot專案(單模組、多模組)使用docker容器執行jar包映象(踩坑)

1.mavem docker外掛配置

<!--docker 外掛配置-->
   <build>
      <finalName>生成jar包的名稱</finalName>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>
spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.2.3</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> </plugins> </build>

2.DockerFile配置檔案

VOLUME /tmp
ADD XXXX.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-D java.security.egd=file:/dev/./urandom","-jar","/app.jar"]

3.配置完成後使用maven命令生成docker映象(單模組專案情況)

#! /bin/bash 
#首先移除原來的映象
docker stop eureka-server 
docker rm eureka-server 
docker rmi eureka-server
#找到專案所在目錄
cd /home/ubuntu/java/jenkins/springcloud/eureka-server/ 
#執行maven命令生成jar包和映象
mvn clean package -Ptest -Dmaven.test.skip=true docker:build
#檢視映象是否存在
docker images
#執行映象
docker run -p 8761:8761 --name eureka-server -d eureka-server

4.配置完成後使用maven命令生成docker映象(多模組專案情況)

以springboot Web專案為例

只在web 模組新增Maven docker外掛配置以及Dockerfile

#! /bin/bash 
#首先移除原來的映象
docker stop boot 
docker rm boot 
docker rmi boot
#找到專案所在目錄
cd /home/ubuntu/java/jenkins/springboot/
#根目錄下進行 install
mvn clean install package -Dmaven.test.skip
#進入web模組下
cd bootweb/
#執行maven命令生成jar包和映象
mvn package docker:build -Dmaven.test.skip
#檢視映象是否存在
docker images
#執行映象
docker run -p 8080:8080 --name boot -d boot