1. 程式人生 > 實用技巧 >專案部署(三、docker+Jenkins+springboot部署)

專案部署(三、docker+Jenkins+springboot部署)

使用第一節springboot專案,根節點建立的Dockerfile檔案即可使用

#jdk版本
FROM java:8
# 作者
MAINTAINER wangkang
#系統編碼
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#設定時區
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#這裡的 /tmp 目錄就會在執行時自動掛載為匿名卷,任何向 /tmp 中寫入的資訊都不會記錄進容器儲存層
VOLUME /tmp
#複製target/spring-boot-web-demo.jar到容器裡WORKDIR下
ADD target/springboot-0.0.1.jar springboot.jar #暴露埠 EXPOSE 8080 #啟動容器時的程序 ENTRYPOINT ["java","-jar","springboot.jar"]

jenkins使用同前一節,只是更改指令碼:

BUILD_ID=dontKillMe
buildPath=/home/JenkinsWorkspace/workspace/springboot
serverName=springboot-0.0.1
cd $buildPath
# 容器id
CID=$(docker ps | grep "$serverName" | awk '{print $1
}') #映象id IID=$(docker images | grep "$serverName" | awk '{print $3}') # 如果容器正在執行,停止它 if [ -n "$CID" ]; then echo "容器id為$CID" docker stop "$CID" docker rm "$CID" fi # 構建映象 if [ -n "$IID" ]; then echo "存在$serverName,IID=$IID" docker rmi "$IID" docker build -t $serverName . else
echo "不存在$serverName,開始構建映象" docker build -t $serverName . fi echo "建立並啟動新容器" docker run --name $serverName -d -p 8080:8089 $serverName echo "啟動成功"