一、打包jar包
lyamanoblog-server-0.0.1.jar
ps:运行时可能会提醒不能有大写字母,所以用的都是小写字母
二、编写Dockerfile文件
FROM java:8
VOLUME /tmp
ADD lyamanoblog-server-0.0.1.jarblog.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/blog.jar"]
三、编写blog-start.sh脚本
#源jar路径
SOURCE_PATH=/usr/local/blogServer
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=lyamanoblog-server-0.0.1.jar
TAG=latest
SERVER_PORT=3300
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME:$TAG" | awk '{print $3}')
if [ -n "$CID" ]; thenecho "存在容器$SERVER_NAME, CID-$CID"docker stop $SERVER_NAMEdocker rm $SERVER_NAME
fi
# 构建docker镜像
if [ -n "$IID" ]; thenecho "存在$SERVER_NAME:$TAG镜像,IID=$IID"docker rmi $SERVER_NAME:$TAG
elseecho "不存在$SERVER_NAME:$TAG镜像,开始构建镜像"cd $SOURCE_PATHdocker build -t $SERVER_NAME:$TAG .
fi
# 运行docker容器
docker run --name $SERVER_NAME -v /usr/localblogServer:/usr/local/blogServer -d -p $SERVER_PORT:$SERVER_PORT $SERVER_NAME:$TAG
echo "$SERVER_NAME容器创建完成"
ps:sh文件需要用notepad++转为Unix格式
四、将jar包、Dockerfile文件、blog-start.sh脚本传输到服务器/usr/local/blogServer目录下
五、进入服务器/usr/local/blogServer下,构建后端镜像
./blog-start.sh
构建完成后自动创建镜像、容器、自动启动容器。只要容器正常运行、以后更新后端只需要更新jar包、重新运行blog-start.sh脚本即可。
注意的坑: springboot不能使用本地地址连接mysql、rabbitmq、redis。会出现连接不上。因为docker容器都是互相独立的。