refactor: 统一使用 Docker Compose V2 命令语法
Some checks failed
CI/CD Pipeline / Code Quality (push) Failing after 15s
CI/CD Pipeline / Unit Tests (push) Has been skipped
CI/CD Pipeline / Build Test Image (push) Has been skipped
CI/CD Pipeline / Build Production Image (push) Has been skipped
CI/CD Pipeline / Deploy to Test (push) Has been skipped
CI/CD Pipeline / Deploy to Production (push) Has been skipped
Some checks failed
CI/CD Pipeline / Code Quality (push) Failing after 15s
CI/CD Pipeline / Unit Tests (push) Has been skipped
CI/CD Pipeline / Build Test Image (push) Has been skipped
CI/CD Pipeline / Build Production Image (push) Has been skipped
CI/CD Pipeline / Deploy to Test (push) Has been skipped
CI/CD Pipeline / Deploy to Production (push) Has been skipped
将所有 docker-compose(V1)替换为 docker compose(V2): - CI/CD 流水线、部署脚本、文档中的命令调用 - 安装包名 docker-compose → docker-compose-plugin
This commit is contained in:
parent
3623ad04b6
commit
2a02c19dcb
@ -127,7 +127,7 @@ jobs:
|
||||
- name: Deploy test environment
|
||||
run: |
|
||||
cd ${{ env.DEPLOY_DIR }}
|
||||
docker-compose --profile test up -d --no-build api-test
|
||||
docker compose --profile test up -d --no-build api-test
|
||||
|
||||
- name: Health check
|
||||
run: |
|
||||
@ -170,7 +170,7 @@ jobs:
|
||||
docker tag duoqi-api:prod duoqi-api:rollback 2>/dev/null || true
|
||||
|
||||
# 滚动更新
|
||||
docker-compose up -d --no-build api-prod
|
||||
docker compose up -d --no-build api-prod
|
||||
|
||||
- name: Health check
|
||||
run: |
|
||||
@ -188,7 +188,7 @@ jobs:
|
||||
echo "Health check failed! Rolling back..."
|
||||
cd ${{ env.DEPLOY_DIR }}
|
||||
docker tag duoqi-api:rollback duoqi-api:prod
|
||||
docker-compose up -d --no-build api-prod
|
||||
docker compose up -d --no-build api-prod
|
||||
exit 1
|
||||
|
||||
- name: Cleanup
|
||||
|
||||
@ -3,9 +3,9 @@
|
||||
# 包含生产环境和测试环境(按需启停)
|
||||
#
|
||||
# 用法:
|
||||
# 生产环境:docker-compose up -d
|
||||
# 含测试: docker-compose --profile test up -d
|
||||
# 停止测试:docker-compose --profile test stop api-test
|
||||
# 生产环境:docker compose up -d
|
||||
# 含测试: docker compose --profile test up -d
|
||||
# 停止测试:docker compose --profile test stop api-test
|
||||
# ========================================
|
||||
|
||||
version: '3.8'
|
||||
|
||||
@ -108,7 +108,7 @@ dnf update -y
|
||||
dnf install -y curl git nginx certbot python3-certbot-nginx
|
||||
|
||||
# 3. 安装 Docker(Alibaba Cloud Linux 内置 Docker 源)
|
||||
dnf install -y docker docker-compose
|
||||
dnf install -y docker docker-compose-plugin
|
||||
systemctl enable --now docker
|
||||
|
||||
# 4. 配置防火墙(firewalld)
|
||||
@ -243,7 +243,7 @@ services:
|
||||
max-file: "3"
|
||||
EOF
|
||||
|
||||
cd /opt/gitea && docker-compose up -d
|
||||
cd /opt/gitea && docker compose up -d
|
||||
```
|
||||
|
||||
> **注意**: Docker 方式会额外占用 ~50MB 内存(容器运行时开销),仅当需要快速试用或测试时使用。
|
||||
@ -460,17 +460,17 @@ services:
|
||||
|
||||
```bash
|
||||
# 只启动生产环境(默认)
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
|
||||
# 启动生产 + 测试环境
|
||||
docker-compose --profile test up -d
|
||||
docker compose --profile test up -d
|
||||
|
||||
# 停止测试环境(释放内存)
|
||||
docker-compose --profile test stop api-test
|
||||
docker compose --profile test stop api-test
|
||||
|
||||
# 重新构建并启动
|
||||
docker-compose up -d --build api-prod
|
||||
docker-compose --profile test up -d --build api-test
|
||||
docker compose up -d --build api-prod
|
||||
docker compose --profile test up -d --build api-test
|
||||
```
|
||||
|
||||
### CI/CD 流程
|
||||
@ -806,19 +806,19 @@ services:
|
||||
|
||||
```bash
|
||||
# 查看所有容器状态
|
||||
docker-compose ps
|
||||
docker compose ps
|
||||
|
||||
# 查看生产日志
|
||||
docker-compose logs -f api-prod
|
||||
docker compose logs -f api-prod
|
||||
|
||||
# 查看测试日志
|
||||
docker-compose -f docker-compose.yml --profile test logs -f api-test
|
||||
docker compose --profile test logs -f api-test
|
||||
|
||||
# 重启生产环境
|
||||
docker-compose restart api-prod
|
||||
docker compose restart api-prod
|
||||
|
||||
# 进入容器调试
|
||||
docker-compose exec api-prod sh
|
||||
docker compose exec api-prod sh
|
||||
|
||||
# 查看资源使用
|
||||
docker stats --no-stream
|
||||
@ -831,10 +831,10 @@ docker stats --no-stream
|
||||
mysql -h your-rds-endpoint -u duoqi_test -p -e "DROP DATABASE duoqi_test; CREATE DATABASE duoqi_test CHARACTER SET utf8mb4;"
|
||||
|
||||
# 执行迁移
|
||||
docker-compose exec api-prod npx drizzle-kit migrate
|
||||
docker compose exec api-prod npx drizzle-kit migrate
|
||||
|
||||
# 导入种子数据到测试库
|
||||
docker-compose --profile test exec api-test bun run db:seed
|
||||
docker compose --profile test exec api-test bun run db:seed
|
||||
|
||||
# 备份生产库
|
||||
mysqldump -h your-rds-endpoint -u duoqi_prod -p duoqi_prod > /opt/backups/duoqi_prod_$(date +%Y%m%d).sql
|
||||
@ -884,7 +884,7 @@ echo "0 2 * * * /opt/backups/backup.sh >> /opt/backups/backup.log 2>&1" | cronta
|
||||
free -h
|
||||
|
||||
# 停止测试环境释放内存
|
||||
docker-compose --profile test stop api-test
|
||||
docker compose --profile test stop api-test
|
||||
|
||||
# 清理 Docker 缓存
|
||||
docker system prune -f
|
||||
@ -897,10 +897,10 @@ docker system df
|
||||
|
||||
```bash
|
||||
# 查看退出日志
|
||||
docker-compose logs api-prod
|
||||
docker compose logs api-prod
|
||||
|
||||
# 检查环境变量
|
||||
docker-compose config
|
||||
docker compose config
|
||||
|
||||
# 检查端口冲突
|
||||
netstat -tlnp | grep -E '3000|3001'
|
||||
@ -937,9 +937,9 @@ docker images | grep duoqi-api
|
||||
|
||||
# 回滚到上一个版本
|
||||
cd /opt/duoqi-api
|
||||
docker-compose down api-prod
|
||||
docker compose down api-prod
|
||||
# 修改 docker-compose.yml 使用指定版本镜像
|
||||
docker-compose up -d api-prod
|
||||
docker compose up -d api-prod
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@ -25,8 +25,8 @@ cd "$DEPLOY_DIR" 2>/dev/null || {
|
||||
case "$COMMAND" in
|
||||
prod)
|
||||
echo "=== Building and deploying production ==="
|
||||
docker-compose build api-prod
|
||||
docker-compose up -d api-prod
|
||||
docker compose build api-prod
|
||||
docker compose up -d api-prod
|
||||
echo "Waiting for health check..."
|
||||
sleep 15
|
||||
if curl -sf http://localhost:3000/health > /dev/null; then
|
||||
@ -39,8 +39,8 @@ case "$COMMAND" in
|
||||
|
||||
test)
|
||||
echo "=== Building and deploying test ==="
|
||||
docker-compose build api-test
|
||||
docker-compose --profile test up -d api-test
|
||||
docker compose build api-test
|
||||
docker compose --profile test up -d api-test
|
||||
echo "Waiting for health check..."
|
||||
sleep 10
|
||||
if curl -sf http://localhost:3001/health > /dev/null; then
|
||||
@ -53,14 +53,14 @@ case "$COMMAND" in
|
||||
|
||||
test-stop)
|
||||
echo "=== Stopping test environment ==="
|
||||
docker-compose --profile test stop api-test
|
||||
docker compose --profile test stop api-test
|
||||
echo "✓ Test environment stopped"
|
||||
free -h | head -2
|
||||
;;
|
||||
|
||||
status)
|
||||
echo "=== Container Status ==="
|
||||
docker-compose ps
|
||||
docker compose ps
|
||||
echo ""
|
||||
echo "=== Memory Usage ==="
|
||||
free -h | head -2
|
||||
@ -73,7 +73,7 @@ case "$COMMAND" in
|
||||
echo "=== Rolling back production ==="
|
||||
if docker images | grep -q "duoqi-api:rollback"; then
|
||||
docker tag duoqi-api:rollback duoqi-api:prod
|
||||
docker-compose up -d --no-build api-prod
|
||||
docker compose up -d --no-build api-prod
|
||||
echo "✓ Rollback completed!"
|
||||
else
|
||||
echo "✗ No rollback image found!"
|
||||
@ -84,9 +84,9 @@ case "$COMMAND" in
|
||||
logs)
|
||||
ENV="${2:-prod}"
|
||||
if [ "$ENV" = "test" ]; then
|
||||
docker-compose --profile test logs -f --tail=100 api-test
|
||||
docker compose --profile test logs -f --tail=100 api-test
|
||||
else
|
||||
docker-compose logs -f --tail=100 api-prod
|
||||
docker compose logs -f --tail=100 api-prod
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user