Browse Source

修复部署脚本:更新Docker工具和移除过时的version字段

pull/2/head
SwTt29 2 months ago
parent
commit
478fee6d3e
  1. 54
      deploy.sh
  2. 2
      docker-compose.yml

54
deploy.sh

@ -11,37 +11,59 @@ if ! command -v docker &> /dev/null; then
exit 1
fi
# 检查是否安装了Docker Compose
echo "检查Docker Compose是否安装..."
if ! command -v docker-compose &> /dev/null; then
# 检查并更新Docker Compose和Buildx
echo "检查并更新Docker工具..."
# 检查是否安装了Docker Compose
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
echo "Docker Compose未安装,正在安装..."
# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
# 使用Daocloud镜像加速安装
curl -L "https://get.daocloud.io/docker/compose/releases/download/latest/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 检查安装是否成功
if ! command -v docker-compose &> /dev/null; then
echo "错误: Docker Compose安装失败,请手动安装"
exit 1
fi
echo "Docker Compose安装成功"
fi
# 更新Docker Buildx到最新版本
echo "更新Docker Buildx..."
docker buildx install 2>/dev/null || true
docker buildx create --use 2>/dev/null || true
echo "Docker工具检查完成"
# 创建项目目录
echo "创建项目目录..."
mkdir -p /opt/project_app/logs /opt/project_app/uploads /opt/project_app/mysql-data
# 克隆代码仓库或更新代码
# 处理代码仓库或更新代码
echo "处理代码仓库..."
if [ ! -d /opt/project_app/.git ]; then
# 如果目录不存在.git文件夹,则克隆仓库
git clone http://8.137.125.67:4000/Swt29/Project_app.git /opt/project_app
# 如果目录不存在.git文件夹,检查目录是否为空
if [ "$(ls -A /opt/project_app)" ]; then
# 目录不为空,创建临时目录克隆后复制文件
echo "目标目录已存在且不为空,使用临时目录克隆代码..."
git clone http://8.137.125.67:4000/Swt29/Project_app.git /tmp/project_app_temp
# 复制.git文件夹和docker相关文件
cp -r /tmp/project_app_temp/.git /opt/project_app/
cp -r /tmp/project_app_temp/docker-compose.yml /opt/project_app/ 2>/dev/null || true
cp -r /tmp/project_app_temp/Dockerfile /opt/project_app/ 2>/dev/null || true
# 清理临时目录
rm -rf /tmp/project_app_temp
else
# 目录为空,直接克隆仓库
git clone http://8.137.125.67:4000/Swt29/Project_app.git /opt/project_app
fi
cd /opt/project_app
else
# 如果目录已存在.git文件夹,则更新代码
cd /opt/project_app
git pull origin BOSS
fi
cd /opt/project_app
# 检查docker-compose.yml文件是否存在
if [ ! -f docker-compose.yml ]; then
echo "警告: docker-compose.yml文件不存在,正在从仓库重新拉取..."
git fetch origin BOSS
git checkout origin/BOSS -- docker-compose.yml Dockerfile
fi
# 检查.env文件是否存在
echo "检查环境变量配置..."

2
docker-compose.yml

@ -1,5 +1,3 @@
version: '3.8'
services:
app:
build: .

Loading…
Cancel
Save