天天看點

docker -- springboot+jenkins+docker自動化部署配置

**本篇主要針對jenkins + docker 項目建構配置 **

jenkins 的安裝配置移步到:

https://blog.csdn.net/qq_41463655/article/details/89734992

docker 建構 springboot jar為鏡像容器不使用jenkins請移步到:

https://blog.csdn.net/qq_41463655/article/details/90136935

一、在springboot項目配置

1、建立docker建構鏡像腳本

  • src/main 下建立 docker 檔案夾
  • 在建立Dockerfile檔案
  • 在把代碼送出至svn/git
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD springboot_docker_demo.jar springboot_docker_demo.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot_docker_demo.jar"]
           

FROM ,表示使用 Jdk8 環境 為基礎鏡像,如果鏡像不是本地的會從 DockerHub 進行下載下傳

VOLUME ,VOLUME 指向了一個/tmp的目錄,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 預設使用/tmp作為工作目錄。這個指令的效果是:在主控端的/var/lib/docker目錄下建立一個臨時檔案并把它連結到容器中的/tmp目錄

ADD ,拷貝檔案并且重命名

ENTRYPOINT ,為了縮短 Tomcat 的啟動時間,添加java.security.egd的系統屬性指向/dev/urandom作為 ENTRYPOINT

2、pom.xml 添加打包指令

<!-- 自定義maven 打包後的名稱-->
              <finalName>springboot_docker_demo</finalName>

	          <!-- maven 打包成 Docker 鏡像   -->
			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>1.0.0</version>
				<configuration>
					<imageName>${docker.image.prefix}</imageName>
					<dockerDirectory>src/main/docker</dockerDirectory>
					<resources>
						<resource>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resource>
					</resources>
				</configuration>
			</plugin>
			
			<!-- maven打包跳過測試  -->
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>

           

二、jenkins 配置

1、拉取git/svn代碼

docker -- springboot+jenkins+docker自動化部署配置

2、maven 打包跳過測試

docker -- springboot+jenkins+docker自動化部署配置
-Dmaven.test.skip=true
           

3、上傳docker 打包鏡像腳本

添加建構後操作

  • 上傳檔案預設頂級目錄為在jenkins工作空間,
  • **表示在工作空間下找到Dockerfile檔案
  • 去除字首看第一次輸出值linux目錄結構在自己去除把,目的是讓jar,和腳本在同級目錄
docker -- springboot+jenkins+docker自動化部署配置
**\Dockerfile

docker images
docker ps -a
           

4、發送 jar

添加一個ssh檔案發送 或 指令

docker -- springboot+jenkins+docker自動化部署配置

springboot的maven打包後的 jar

和上面一個意思

docker -- springboot+jenkins+docker自動化部署配置

5、docker指令建構項目

在添加一個ssh檔案發送 或 指令

docker -- springboot+jenkins+docker自動化部署配置

指令一欄

cd /
docker rm -f wsldy
docker rmi -f wsldy.jar:latest

cd /usr/local/work/jenkins
docker build -t wsldy.jar .
docker run --name  wsldy -p 8888:8080 -t -d wsldy.jar
           

修正時間、啟動指令添加 -v /etc/localtime:/etc/localtime

docker run -v /etc/localtime:/etc/localtime --name  wsldy -p 8888:8080 -t -d wsldy.jar
           

6、建構啟動指令詳細說明

表示為根目錄
cd /
删除正在運作的容器(上次建構的同項目)
docker rm -f wsldy
删除鏡像(上次建構的同項目)
docker rmi -f wsldy.jar:latest

進入jar 和 Dockerfile 檔案的存放目錄
cd /usr/local/work/jenkins
建構docker鏡像
docker build -t wsldy.jar .
背景啟動鏡像,不會列印啟動日志
docker run --name  wsldy -p 8888:8080 -t -d wsldy.jar
           

然後點選建構項目就ok了呢

喜歡就個贊呗!…

繼續閱讀