springboot docker打包镜像
- 首先在idea中创建springboot项目,pom文件packaging 为jar ,然后编写接口。
- 编写Dockerfile 注意Dockerfile只能这样命名。
- 使用maven打包命令或者使用idea打包插件都行
mvn clean package -Dmaven.test.skip=true
*也可以使用idea插件,点击右侧maven插件 -> package
- 打包成功后会在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"]
- 然后编写启动脚本
#源jar路径
SOURCE_PATH=/usr/local/docker
#docker 镜像/容器名字或者jar名字 这里都命名为这个
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
# 构建docker镜像
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME:$TAG镜像,IID=$IID"
docker rmi $SERVER_NAME:$TAG
else
echo "不存在$SERVER_NAME:$TAG镜像,开始构建镜像"
cd $SOURCE_PATH
docker build -t $SERVER_NAME:$TAG .
fi
# 运行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容器创建完成"
-
把脚本和jar 还有Dockerfile 上传到/usr/local/docker下(手动创建文件夹)
-
然后在/usr/local/docker 下 执行构建镜像
sh ./blog-start.sh
- 查看docker容器运行日志
docker logs -f -t --tail=100 CONTAINER_ID //容器id
- 然后如果你是腾讯云或者阿里云记得把端口的防火墙打开,然后等待构建完毕后在浏览器中进行访问接口。