(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上会造成字符乱码问题,运行没问题,影响注释观看

 

posted @ 2026-10-11 00:29  观云阁  阅读(2)  评论(0)    收藏  举报