(shell脚本)linux发布项目至容器
#!/bin/bash
# Description: .NET项目Docker一键发布脚本
# 使用方式:./deploy.sh
# 注意:执行前需要把编译好的 netcoreapp 文件夹上传至当前目录
# 开启安全机制:任意命令执行失败,脚本直接退出,不再执行后续操作
set -e
# ========== 【配置区】每次发布只需要修改这里的镜像版本号 ==========
IMAGE_NAME="mailnetapp" # 镜像名称,固定不变
IMAGE_TAG="v2" # 镜像版本,每次发布升级:v1→v2→v3
CONTAINER_NAME="mailnetapp" # 容器名称,固定不变
PORT="5217" # 对外暴露端口,和Dockerfile保持一致
# =================================================================
echo "====================================="
echo " Start build:${IMAGE_NAME}:${IMAGE_TAG}"
echo "====================================="
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
echo ""
echo "====================================="
echo " Stop old container ${CONTAINER_NAME}"
echo "====================================="
docker stop ${CONTAINER_NAME} || true
echo ""
echo "====================================="
echo " Remove old container ${CONTAINER_NAME}"
echo "====================================="
docker rm ${CONTAINER_NAME} || true
echo ""
echo "====================================="
echo " Start new container ${CONTAINER_NAME}"
echo "====================================="
docker run -d --name ${CONTAINER_NAME} -p ${PORT}:${PORT} --restart=always ${IMAGE_NAME}:${IMAGE_TAG}
echo ""
echo "====================================="
echo "Deploy finished"
echo "====================================="
docker ps | grep ${CONTAINER_NAME}
1、错误: -bash: ./build_run.sh: /bin/bash^M: bad interpreter: No such file or directory
^M 就是 Windows 换行符 \r(回车符)。
解决方式:
# 安装工具 sudo apt install dos2unix # 转换脚本,清除windows回车符 dos2unix build_run.sh
注意:最好将上述脚本内的中文字符删除或者替换成英文字符,不然在linux上会造成字符乱码问题,运行没问题,影响注释观看

浙公网安备 33010602011771号