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
|
- name: Deploy test environment
|
||||||
run: |
|
run: |
|
||||||
cd ${{ env.DEPLOY_DIR }}
|
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
|
- name: Health check
|
||||||
run: |
|
run: |
|
||||||
@ -170,7 +170,7 @@ jobs:
|
|||||||
docker tag duoqi-api:prod duoqi-api:rollback 2>/dev/null || true
|
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
|
- name: Health check
|
||||||
run: |
|
run: |
|
||||||
@ -188,7 +188,7 @@ jobs:
|
|||||||
echo "Health check failed! Rolling back..."
|
echo "Health check failed! Rolling back..."
|
||||||
cd ${{ env.DEPLOY_DIR }}
|
cd ${{ env.DEPLOY_DIR }}
|
||||||
docker tag duoqi-api:rollback duoqi-api:prod
|
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
|
exit 1
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
|
|||||||
@ -3,9 +3,9 @@
|
|||||||
# 包含生产环境和测试环境(按需启停)
|
# 包含生产环境和测试环境(按需启停)
|
||||||
#
|
#
|
||||||
# 用法:
|
# 用法:
|
||||||
# 生产环境: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
|
||||||
# ========================================
|
# ========================================
|
||||||
|
|
||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|||||||
@ -108,7 +108,7 @@ dnf update -y
|
|||||||
dnf install -y curl git nginx certbot python3-certbot-nginx
|
dnf install -y curl git nginx certbot python3-certbot-nginx
|
||||||
|
|
||||||
# 3. 安装 Docker(Alibaba Cloud Linux 内置 Docker 源)
|
# 3. 安装 Docker(Alibaba Cloud Linux 内置 Docker 源)
|
||||||
dnf install -y docker docker-compose
|
dnf install -y docker docker-compose-plugin
|
||||||
systemctl enable --now docker
|
systemctl enable --now docker
|
||||||
|
|
||||||
# 4. 配置防火墙(firewalld)
|
# 4. 配置防火墙(firewalld)
|
||||||
@ -243,7 +243,7 @@ services:
|
|||||||
max-file: "3"
|
max-file: "3"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cd /opt/gitea && docker-compose up -d
|
cd /opt/gitea && docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
> **注意**: Docker 方式会额外占用 ~50MB 内存(容器运行时开销),仅当需要快速试用或测试时使用。
|
> **注意**: Docker 方式会额外占用 ~50MB 内存(容器运行时开销),仅当需要快速试用或测试时使用。
|
||||||
@ -460,17 +460,17 @@ services:
|
|||||||
|
|
||||||
```bash
|
```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 up -d --build api-prod
|
||||||
docker-compose --profile test up -d --build api-test
|
docker compose --profile test up -d --build api-test
|
||||||
```
|
```
|
||||||
|
|
||||||
### CI/CD 流程
|
### CI/CD 流程
|
||||||
@ -806,19 +806,19 @@ services:
|
|||||||
|
|
||||||
```bash
|
```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
|
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;"
|
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
|
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
|
free -h
|
||||||
|
|
||||||
# 停止测试环境释放内存
|
# 停止测试环境释放内存
|
||||||
docker-compose --profile test stop api-test
|
docker compose --profile test stop api-test
|
||||||
|
|
||||||
# 清理 Docker 缓存
|
# 清理 Docker 缓存
|
||||||
docker system prune -f
|
docker system prune -f
|
||||||
@ -897,10 +897,10 @@ docker system df
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 查看退出日志
|
# 查看退出日志
|
||||||
docker-compose logs api-prod
|
docker compose logs api-prod
|
||||||
|
|
||||||
# 检查环境变量
|
# 检查环境变量
|
||||||
docker-compose config
|
docker compose config
|
||||||
|
|
||||||
# 检查端口冲突
|
# 检查端口冲突
|
||||||
netstat -tlnp | grep -E '3000|3001'
|
netstat -tlnp | grep -E '3000|3001'
|
||||||
@ -937,9 +937,9 @@ docker images | grep duoqi-api
|
|||||||
|
|
||||||
# 回滚到上一个版本
|
# 回滚到上一个版本
|
||||||
cd /opt/duoqi-api
|
cd /opt/duoqi-api
|
||||||
docker-compose down api-prod
|
docker compose down api-prod
|
||||||
# 修改 docker-compose.yml 使用指定版本镜像
|
# 修改 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
|
case "$COMMAND" in
|
||||||
prod)
|
prod)
|
||||||
echo "=== Building and deploying production ==="
|
echo "=== Building and deploying production ==="
|
||||||
docker-compose build api-prod
|
docker compose build api-prod
|
||||||
docker-compose up -d api-prod
|
docker compose up -d api-prod
|
||||||
echo "Waiting for health check..."
|
echo "Waiting for health check..."
|
||||||
sleep 15
|
sleep 15
|
||||||
if curl -sf http://localhost:3000/health > /dev/null; then
|
if curl -sf http://localhost:3000/health > /dev/null; then
|
||||||
@ -39,8 +39,8 @@ case "$COMMAND" in
|
|||||||
|
|
||||||
test)
|
test)
|
||||||
echo "=== Building and deploying test ==="
|
echo "=== Building and deploying test ==="
|
||||||
docker-compose build api-test
|
docker compose build api-test
|
||||||
docker-compose --profile test up -d api-test
|
docker compose --profile test up -d api-test
|
||||||
echo "Waiting for health check..."
|
echo "Waiting for health check..."
|
||||||
sleep 10
|
sleep 10
|
||||||
if curl -sf http://localhost:3001/health > /dev/null; then
|
if curl -sf http://localhost:3001/health > /dev/null; then
|
||||||
@ -53,14 +53,14 @@ case "$COMMAND" in
|
|||||||
|
|
||||||
test-stop)
|
test-stop)
|
||||||
echo "=== Stopping test environment ==="
|
echo "=== Stopping test environment ==="
|
||||||
docker-compose --profile test stop api-test
|
docker compose --profile test stop api-test
|
||||||
echo "✓ Test environment stopped"
|
echo "✓ Test environment stopped"
|
||||||
free -h | head -2
|
free -h | head -2
|
||||||
;;
|
;;
|
||||||
|
|
||||||
status)
|
status)
|
||||||
echo "=== Container Status ==="
|
echo "=== Container Status ==="
|
||||||
docker-compose ps
|
docker compose ps
|
||||||
echo ""
|
echo ""
|
||||||
echo "=== Memory Usage ==="
|
echo "=== Memory Usage ==="
|
||||||
free -h | head -2
|
free -h | head -2
|
||||||
@ -73,7 +73,7 @@ case "$COMMAND" in
|
|||||||
echo "=== Rolling back production ==="
|
echo "=== Rolling back production ==="
|
||||||
if docker images | grep -q "duoqi-api:rollback"; then
|
if docker images | grep -q "duoqi-api:rollback"; then
|
||||||
docker tag duoqi-api:rollback duoqi-api:prod
|
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!"
|
echo "✓ Rollback completed!"
|
||||||
else
|
else
|
||||||
echo "✗ No rollback image found!"
|
echo "✗ No rollback image found!"
|
||||||
@ -84,9 +84,9 @@ case "$COMMAND" in
|
|||||||
logs)
|
logs)
|
||||||
ENV="${2:-prod}"
|
ENV="${2:-prod}"
|
||||||
if [ "$ENV" = "test" ]; then
|
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
|
else
|
||||||
docker-compose logs -f --tail=100 api-prod
|
docker compose logs -f --tail=100 api-prod
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user