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

将所有 docker-compose(V1)替换为 docker compose(V2):
- CI/CD 流水线、部署脚本、文档中的命令调用
- 安装包名 docker-compose → docker-compose-plugin
This commit is contained in:
Wang Zhuoxuan 2026-04-17 00:31:49 +08:00
parent 3623ad04b6
commit 2a02c19dcb
4 changed files with 34 additions and 34 deletions

View File

@ -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

View File

@ -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'

View File

@ -108,7 +108,7 @@ dnf update -y
dnf install -y curl git nginx certbot python3-certbot-nginx
# 3. 安装 DockerAlibaba 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
```
---

View File

@ -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
;;