springboot項目開發(fā)完成后,發(fā)布測試環(huán)境,需要經(jīng)過編譯,打包,上傳,啟動等步驟。
如果采用dockerfile-maven-plugin插件+shell腳本組合使用,就可以實現(xiàn)一鍵部署。
第1步、Linux安裝docker
網(wǎng)上教程很多:略過
第2步、開啟docker遠(yuǎn)程API
vi /usr/lib/systemd/system/docker.service
在 ExecStart,后面添加:-H tcp://0.0.0.0:2375
修改完成后,按esc輸入:wq退出
執(zhí)行命令
systemctl daemon-reload //重新加載配置文件
systemctl restart docker.service //重啟docker
第3步、添加dockerfile-maven-plugin插件
在pom.xml文件plugins里面添加
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<repository>prefix/${project.artifactId}</repository>
<tag>${project.version}</tag>
<contextDirectory>${project.basedir}</contextDirectory>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
第4步、編寫Dockerfile
在springboot項目的根目錄新建Dockerfile文件,添加內(nèi)容如下:
FROM openjdk:8-jdk-alpine
WORKDIR /app/
VOLUME ["/tmp"]
EXPOSE 8080
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
第5步、編寫腳本
給不同開發(fā)平臺的開發(fā)者使用
Windows開發(fā)者
在springboot項目的根目錄新建auto-build.bat文件,添加內(nèi)容如下
@echo off
echo "auto build ready"
set DOCKER_HOST=tcp://Linux服務(wù)器IP:2375
echo "set docker host success"
mvn clean package -Dmaven.test.skip=true dockerfile:build
echo "auto build success"
MacOS開發(fā)者
在springboot項目的根目錄新建auto-build.sh文件,添加內(nèi)容如下
#!/bin/bash
echo "auto build ready"
DOCKER_HOST=tcp://Linux服務(wù)器IP:2375 mvn clean package -Dmaven.test.skip=true dockerfile:build
echo "auto build success"
腳本編寫完畢,執(zhí)行腳本。
第6步、鏡像驗證
登錄Linux服務(wù)器,執(zhí)行
docker images //查看docker鏡像
查看springboot項目鏡像,如果存在證明編譯,打包,上傳都成功了,接下來就是啟動鏡像了
docker run -itd --name 別名 -p 8080:8080 鏡像名稱 /bin/bash
鏡像啟動成功后,可以瀏覽器驗證了,如:http://Linux服務(wù)器IP:8080
最后來說說這個插件利弊
好處
1、配置簡單,環(huán)境要求簡單,只需要開發(fā)者安裝JDK、maven(配置jdk環(huán)境變量、maven環(huán)境變量)
壞處
1、存在安全風(fēng)險
2、發(fā)布不是通過git版本,而是開發(fā)者直接發(fā)布
分享到此結(jié)束,謝謝大家。