springboot docker打包鏡像
- 首先在idea中創(chuàng)建springboot項(xiàng)目,pom文件packaging 為jar ,然后編寫(xiě)接口。
- 編寫(xiě)Dockerfile 注意Dockerfile只能這樣命名。
- 使用maven打包命令或者使用idea打包插件都行
mvn clean package -Dmaven.test.skip=true
*也可以使用idea插件,點(diǎn)擊右側(cè)maven插件 -> package

- 打包成功后會(huì)在target目錄下生成jar包
Dockerfile sh
FROM java:8
MAINTAINER author <xxx@qq.com>
ENV TZ=Asia/Shanghai
VOLUME /tmp
COPY target/*.jar app.jar
RUN echo $(date) > /image_built_at
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- 然后編寫(xiě)啟動(dòng)腳本
#源jar路徑
SOURCE_PATH=/usr/local/docker
#docker 鏡像/容器名字或者jar名字 這里都命名為這個(gè)
SERVER_NAME=springboot-0.0.1.jar
TAG=latest
SERVER_PORT=8080
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#鏡像id
IID=$(docker images | grep "$SERVER_NAME:$TAG" | awk '{print $3}')
if [ -n "$CID" ]; then
echo "存在容器$SERVER_NAME, CID-$CID"
docker stop $SERVER_NAME
docker rm $SERVER_NAME
fi
# 構(gòu)建docker鏡像
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME:$TAG鏡像,IID=$IID"
docker rmi $SERVER_NAME:$TAG
else
echo "不存在$SERVER_NAME:$TAG鏡像,開(kāi)始構(gòu)建鏡像"
cd $SOURCE_PATH
docker build -t $SERVER_NAME:$TAG .
fi
# 運(yùn)行docker容器
docker run --name $SERVER_NAME -v /usr/local/upload:/usr/local/upload -d -p $SERVER_PORT:$SERVER_PORT $SERVER_NAME:$TAG
echo "$SERVER_NAME容器創(chuàng)建完成"
-
把腳本和jar 還有Dockerfile 上傳到/usr/local/docker下(手動(dòng)創(chuàng)建文件夾)
-
然后在/usr/local/docker 下 執(zhí)行構(gòu)建鏡像
sh ./blog-start.sh
- 查看docker容器運(yùn)行日志
docker logs -f -t --tail=100 CONTAINER_ID //容器id
- 然后如果你是騰訊云或者阿里云記得把端口的防火墻打開(kāi),然后等待構(gòu)建完畢后在瀏覽器中進(jìn)行訪問(wèn)接口。

浙公網(wǎng)安備 33010602011771號(hào)