diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 93a2617..5442a70 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -16,6 +16,8 @@ jobs: permissions: contents: read packages: write + id-token: write + attestations: write steps: - name: Checkout repository @@ -44,6 +46,7 @@ jobs: type=raw,value=latest,enable={{is_default_branch}} - name: Build and push Docker image + id: build uses: docker/build-push-action@v5 with: context: . @@ -55,9 +58,9 @@ jobs: cache-to: type=gha,mode=max - name: Generate artifact attestation - if: github.event_name != 'pull_request' + if: github.event_name != 'pull_request' && steps.build.outputs.digest != '' uses: actions/attest-build-provenance@v1 with: - subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} subject-digest: ${{ steps.build.outputs.digest }} push-to-registry: true diff --git a/Makefile b/Makefile index 486f961..f2bdeae 100644 --- a/Makefile +++ b/Makefile @@ -137,18 +137,49 @@ docker-build: docker tag gpt-load:$(VERSION) gpt-load:latest @echo "✅ Docker 镜像构建完成" -# Docker 运行 +# Docker 运行(使用预构建镜像) .PHONY: docker-run docker-run: - @echo "🐳 运行 Docker 容器..." + @echo "🐳 运行 Docker 容器(预构建镜像)..." docker run -d \ --name gpt-load \ -p 3000:3000 \ -v $(PWD)/keys.txt:/app/keys.txt:ro \ -v $(PWD)/.env:/app/.env:ro \ --restart unless-stopped \ + ghcr.io/tbphp/gpt-load:latest + +# Docker 运行(本地构建) +.PHONY: docker-run-local +docker-run-local: + @echo "🐳 运行 Docker 容器(本地构建)..." + docker run -d \ + --name gpt-load-local \ + -p 3000:3000 \ + -v $(PWD)/keys.txt:/app/keys.txt:ro \ + -v $(PWD)/.env:/app/.env:ro \ + --restart unless-stopped \ gpt-load:latest +# Docker Compose 运行(预构建镜像) +.PHONY: compose-up +compose-up: + @echo "🐳 使用 Docker Compose 启动(预构建镜像)..." + docker-compose up -d + +# Docker Compose 运行(本地构建) +.PHONY: compose-up-dev +compose-up-dev: + @echo "🐳 使用 Docker Compose 启动(本地构建)..." + docker-compose -f docker-compose.dev.yml up -d + +# Docker Compose 停止 +.PHONY: compose-down +compose-down: + @echo "🐳 停止 Docker Compose..." + docker-compose down + docker-compose -f docker-compose.dev.yml down 2>/dev/null || true + # 健康检查 .PHONY: health health: @@ -202,8 +233,12 @@ help: @echo " uninstall - 从系统卸载" @echo "" @echo "Docker 相关:" - @echo " docker-build - 构建 Docker 镜像" - @echo " docker-run - 运行 Docker 容器" + @echo " docker-build - 构建 Docker 镜像" + @echo " docker-run - 运行 Docker 容器(预构建镜像)" + @echo " docker-run-local - 运行 Docker 容器(本地构建)" + @echo " compose-up - Docker Compose 启动(预构建镜像)" + @echo " compose-up-dev - Docker Compose 启动(本地构建)" + @echo " compose-down - Docker Compose 停止" @echo "" @echo "管理相关:" @echo " health - 健康检查" diff --git a/README.md b/README.md index 40dda61..b083d6f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # GPT-Load -![Docker Build](https://github.com/tangbo/gpt-load/actions/workflows/docker-build.yml/badge.svg) +![Docker Build](https://github.com/tbphp/gpt-load/actions/workflows/docker-build.yml/badge.svg) ![Go Version](https://img.shields.io/badge/Go-1.21+-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) @@ -61,13 +61,25 @@ make build ```bash # 从GitHub Container Registry拉取镜像 -docker pull ghcr.io/tangbo/gpt-load:latest +docker pull ghcr.io/tbphp/gpt-load:latest # 运行容器 docker run -d -p 3000:3000 \ -e KEYS_FILE=/app/keys.txt \ -v $(pwd)/keys.txt:/app/keys.txt \ - ghcr.io/tangbo/gpt-load:latest + ghcr.io/tbphp/gpt-load:latest +``` + +#### 使用 Docker Compose(推荐) + +```bash +# 使用预构建镜像启动 +make compose-up +# 或者 +docker-compose up -d + +# 停止服务 +make compose-down ``` #### 本地构建镜像 @@ -76,11 +88,11 @@ docker run -d -p 3000:3000 \ # 构建镜像 make docker-build -# 运行容器 -make docker-run +# 运行容器(本地构建) +make docker-run-local -# 或使用 docker-compose -docker-compose up -d +# 或使用 docker-compose(本地构建) +make compose-up-dev ``` ## ⚙️ 配置管理 @@ -128,7 +140,7 @@ cp .env.example .env ```bash # 拉取最新镜像 -docker pull ghcr.io/tangbo/gpt-load:latest +docker pull ghcr.io/tbphp/gpt-load:latest ``` 详细配置说明请参考:[GitHub Actions 配置指南](.docs/github-actions-setup.md) diff --git a/docker-compose.yml b/docker-compose.yml index 94b6fd5..102f180 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.8" services: gpt-load: - build: . + image: ghcr.io/tbphp/gpt-load:latest container_name: gpt-load ports: - "3000:3000"