SpringBoot專案(單模組、多模組)使用docker容器執行jar包映象(踩坑)
阿新 • • 發佈:2018-11-08
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