專案部署(三、docker+Jenkins+springboot部署)
阿新 • • 發佈:2020-07-17
使用第一節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 . elseecho "不存在$serverName,開始構建映象" docker build -t $serverName . fi echo "建立並啟動新容器" docker run --name $serverName -d -p 8080:8089 $serverName echo "啟動成功"