fix: 统一使用 /opt/camtalk/.env 路径,act_runner 挂载宿主机目录后直接读取
This commit is contained in:
@@ -27,19 +27,6 @@ jobs:
|
|||||||
rm -rf /tmp/camtalk-deploy
|
rm -rf /tmp/camtalk-deploy
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 始终从宿主机同步最新的 .env(通过 docker 桥接,绕过 CI 容器文件系统限制)
|
|
||||||
docker run --rm \
|
|
||||||
-v /opt/camtalk/.env:/host.env:ro \
|
|
||||||
-v /root/camtalk:/deploy \
|
|
||||||
alpine cp /host.env /deploy/.env 2>/dev/null || true
|
|
||||||
if [ ! -f /root/camtalk/.env ]; then
|
|
||||||
echo "=============================================="
|
|
||||||
echo " 错误: 无法从 /opt/camtalk/.env 同步环境变量"
|
|
||||||
echo " 请在服务器上执行: cp /opt/camtalk/.env /root/camtalk/.env"
|
|
||||||
echo "=============================================="
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
chmod +x /root/camtalk/deploy.sh
|
chmod +x /root/camtalk/deploy.sh
|
||||||
/root/camtalk/deploy.sh build
|
/root/camtalk/deploy.sh build
|
||||||
/root/camtalk/deploy.sh restart
|
/root/camtalk/deploy.sh restart
|
||||||
25
deploy.sh
25
deploy.sh
@@ -4,9 +4,8 @@ set -euo pipefail
|
|||||||
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
cd "$PROJECT_DIR"
|
cd "$PROJECT_DIR"
|
||||||
|
|
||||||
# .env 存放于项目目录,供 docker compose env_file 读取
|
# .env 固定路径(act_runner 容器已挂载 /opt/camtalk)
|
||||||
#(act_runner 容器内无法访问 /opt/camtalk,需放在项目目录下)
|
ENV_FILE="/opt/camtalk/.env"
|
||||||
ENV_FILE="$PROJECT_DIR/.env"
|
|
||||||
|
|
||||||
# 颜色输出
|
# 颜色输出
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
@@ -16,28 +15,14 @@ info() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
|||||||
|
|
||||||
# .env 检查:首次部署时从 .env.example 复制模板,提示用户填写
|
# .env 检查:首次部署时从 .env.example 复制模板,提示用户填写
|
||||||
check_env() {
|
check_env() {
|
||||||
if [ -f "$ENV_FILE" ]; then
|
if [ ! -f "$ENV_FILE" ]; then
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 如果项目目录没有 .env,尝试从 /opt/camtalk/.env 复制(兼容旧部署)
|
|
||||||
local legacy_env="/opt/camtalk/.env"
|
|
||||||
if [ -f "$legacy_env" ]; then
|
|
||||||
cp "$legacy_env" "$ENV_FILE"
|
|
||||||
info "已从 $legacy_env 复制环境变量文件"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=============================================="
|
echo "=============================================="
|
||||||
echo " 错误: 未找到环境变量文件"
|
echo " 错误: 未找到环境变量文件"
|
||||||
echo ""
|
echo " 路径: $ENV_FILE"
|
||||||
echo " 请在以下任一位置创建 .env 文件:"
|
|
||||||
echo " 1. $ENV_FILE"
|
|
||||||
echo " 2. $legacy_env(运行本脚本时会自动复制)"
|
|
||||||
echo ""
|
|
||||||
echo " 模板参考: backend/.env.example"
|
echo " 模板参考: backend/.env.example"
|
||||||
echo "=============================================="
|
echo "=============================================="
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_env
|
check_env
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: camtalk-backend
|
container_name: camtalk-backend
|
||||||
env_file:
|
env_file:
|
||||||
- /root/camtalk/.env
|
- /opt/camtalk/.env
|
||||||
environment:
|
environment:
|
||||||
# 三级存储配置(敏感信息通过 env_file 注入)
|
# 三级存储配置(敏感信息通过 env_file 注入)
|
||||||
- CAMTALK_STORAGE_REDIS_ENABLED=${CAMTALK_STORAGE_REDIS_ENABLED:-true}
|
- CAMTALK_STORAGE_REDIS_ENABLED=${CAMTALK_STORAGE_REDIS_ENABLED:-true}
|
||||||
@@ -38,7 +38,7 @@ services:
|
|||||||
image: docker.m.daocloud.io/library/postgres:15-alpine
|
image: docker.m.daocloud.io/library/postgres:15-alpine
|
||||||
container_name: camtalk-postgres
|
container_name: camtalk-postgres
|
||||||
env_file:
|
env_file:
|
||||||
- /root/camtalk/.env
|
- /opt/camtalk/.env
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: camtalk
|
POSTGRES_DB: camtalk
|
||||||
volumes:
|
volumes:
|
||||||
@@ -57,7 +57,7 @@ services:
|
|||||||
image: docker.m.daocloud.io/library/redis:7-alpine
|
image: docker.m.daocloud.io/library/redis:7-alpine
|
||||||
container_name: camtalk-redis
|
container_name: camtalk-redis
|
||||||
env_file:
|
env_file:
|
||||||
- /root/camtalk/.env
|
- /opt/camtalk/.env
|
||||||
command: >
|
command: >
|
||||||
sh -c '
|
sh -c '
|
||||||
if [ -n "$$CAMTALK_REDIS_PASSWORD" ]; then
|
if [ -n "$$CAMTALK_REDIS_PASSWORD" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user