优雅的部署-Spring Boot Docker容器化部署脚本

Spring Boot Docker容器化部署脚本

#!/bin/bash

# 定义变量
IMAGE_NAME=ydsc:v1
CONTAINER_NAME=ydsc-container

# 判断容器是否存在,若存在则停止并移除
if [ $(docker ps -q -f name=$CONTAINER_NAME) ]; then
    echo "Stopping and removing $CONTAINER_NAME container..."
    docker stop $CONTAINER_NAME
    docker rm $CONTAINER_NAME
fi

# 判断镜像是否存在,若存在则移除
if [ $(docker images -q $IMAGE_NAME) ]; then
    echo "Removing old $IMAGE_NAME image..."
    docker rmi $IMAGE_NAME
fi

# 构建镜像
echo "Building new $IMAGE_NAME image..."
docker build --no-cache -t $IMAGE_NAME .

# 启动容器
echo "Starting $CONTAINER_NAME container..."
docker run -d -v $(pwd)/log:/app/log --name $CONTAINER_NAME -p 8093:8093 $IMAGE_NAME

# 判断容器是否成功启动
if [ $(docker ps -q -f name=$CONTAINER_NAME) ]; then
    echo $CONTAINER_NAME "myapp service is running"
    docker logs -f $CONTAINER_NAME
else
    echo $CONTAINER_NAME "myapp service failed to start"
fi

解析:

第一行指定脚本解释器为 bash。

定义变量 IMAGE_NAME 和 CONTAINER_NAME,用于指定镜像名和容器名。

判断容器是否存在,若存在则停止并移除。 ( d o c k e r p s − q − f n a m e = (docker ps -q -f name= (dockerpsqfname=CONTAINER_NAME) 是一个命令替换,用于获取容器 ID。[ ] 中间的部分是一个测试命令,用于检查条件是否成立。echo 用于输出日志。

判断镜像是否存在,若存在则移除。$(docker images -q $IMAGE_NAME) 同样是一个命令替换,用于获取镜像 ID。

构建镜像。docker build --no-cache -t $IMAGE_NAME . 用于构建镜像,–no-cache 参数表示不使用缓存,-t 参数用于指定镜像名,. 表示 Dockerfile 文件所在目录。

启动容器。docker run -d -v $(pwd)/log:/app/log --name $CONTAINER_NAME -p 8093:8093 $IMAGE_NAME 用于启动容器,-d 表示在后台运行,-v 表示挂载目录,–name 表示指定容器名,-p 表示映射端口。

判断容器是否成功启动,若成功则输出容器名和日志。docker logs -f $CONTAINER_NAME 用于查看容器日志。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值