fix: env_file 改为相对路径,解决 CI 容器无法读取 /opt/camtalk/.env 的问题

This commit is contained in:
hhs
2026-06-20 19:29:12 +08:00
parent 92e6636d05
commit fe5ac20a1f
3 changed files with 56 additions and 36 deletions

View File

@@ -8,26 +8,36 @@ jobs:
deploy:
runs-on: aliyun
steps:
- name: Checkout
uses: "http://8.161.227.145:3000/huanghaosheng/checkout@releases/v4"
with:
ref: ${{ github.ref }}
- name: Verify checkout
- name: Deploy
run: |
echo "触发分支: ${GITHUB_REF_NAME}"
echo "当前 HEAD: $(git log -1 --oneline)"
if [ -d /root/camtalk/.git ]; then
cd /root/camtalk
git fetch origin ${GITHUB_REF_NAME} --depth=1
git reset --hard origin/${GITHUB_REF_NAME}
else
git clone --depth=1 --branch ${GITHUB_REF_NAME} \
http://8.161.227.145:3000/XEngineers/CamTalk.git /tmp/camtalk-deploy
mkdir -p /root/camtalk
rsync -a --delete \
--exclude='.env' \
--exclude='pgdata' \
--exclude='redisdata' \
/tmp/camtalk-deploy/ /root/camtalk/
rm -rf /tmp/camtalk-deploy
fi
- name: Install Docker CLI
run: apk add --no-cache docker-cli docker-cli-compose rsync
# 确保 .env 存在于项目目录CI 容器内无法直接访问 /opt
if [ ! -f /root/camtalk/.env ]; then
cp /opt/camtalk/.env /root/camtalk/.env 2>/dev/null || true
fi
if [ ! -f /root/camtalk/.env ]; then
echo "=============================================="
echo " 错误: /root/camtalk/.env 不存在"
echo " 请在服务器上执行: cp /opt/camtalk/.env /root/camtalk/.env"
echo "=============================================="
exit 1
fi
- name: Sync to deploy directory
run: |
mkdir -p /root/camtalk
rsync -a --delete --exclude='.env' --exclude='pgdata' --exclude='redisdata' ./ /root/camtalk/
- name: Build and Deploy
run: |
chmod +x /root/camtalk/deploy.sh
/root/camtalk/deploy.sh build
/root/camtalk/deploy.sh restart
/root/camtalk/deploy.sh restart