diff --git a/.gitea/workflows/docker-build-push.yml b/.gitea/workflows/docker-build-push.yml index 7ec0edf..bb492ff 100644 --- a/.gitea/workflows/docker-build-push.yml +++ b/.gitea/workflows/docker-build-push.yml @@ -1,29 +1,73 @@ -name: Build and Push Docker Image +name: Build and Push Docker Images on: push: - branches: - - main + branches: [ main ] + tags: [ 'v*' ] + pull_request: + branches: [ main ] jobs: build-and-push: runs-on: ubuntu-latest + strategy: + matrix: + service: [frontend, backend] + steps: - - name: Checkout code - uses: actions/checkout@v3 + - name: Checkout code + uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to Registry + uses: docker/login-action@v3 + with: + registry: gitea.zfxt.top + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.AUTH_TOKEN }} - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - push: true - tags: your-dockerhub-username/your-repo-name:latest \ No newline at end of file + - name: Extract metadata for backend + if: matrix.service == 'backend' + id: meta-backend + uses: docker/metadata-action@v5 + with: + images: gitea.zfxt.top/zfxt/backend + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + + - name: Extract metadata for frontend + if: matrix.service == 'frontend' + id: meta-frontend + uses: docker/metadata-action@v5 + with: + images: gitea.zfxt.top/zfxt/frontend + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + + - name: Build and push backend image + if: matrix.service == 'backend' + uses: docker/build-push-action@v5 + with: + context: ./backend + file: ./backend/dockerfile + push: true + tags: ${{ steps.meta-backend.outputs.tags }} + labels: ${{ steps.meta-backend.outputs.labels }} + + - name: Build and push frontend image + if: matrix.service == 'frontend' + uses: docker/build-push-action@v5 + with: + context: ./front + file: ./front/dockerfile + push: true + tags: ${{ steps.meta-frontend.outputs.tags }} + labels: ${{ steps.meta-frontend.outputs.labels }} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 37bdf11..9366f12 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,26 +2,22 @@ version: '3.8' services: frontend: - build: - context: ./front - dockerfile: dockerfile - container_name: my-frontend-web image: gitea.zfxt.top/zfxt/frontend:latest + container_name: my-frontend-web ports: - - "5555:5555" # 修改为5555端口映射 + - "5555:5555" depends_on: - backend networks: - app-network + # 移除了build配置,因为我们现在使用预构建的镜像 backend: - build: - context: ./backend - dockerfile: dockerfile image: gitea.zfxt.top/zfxt/backend:latest - container_name: my-backend-api # 设置后端容器名 + container_name: my-backend-api networks: - app-network + # 移除了build配置,因为我们现在使用预构建的镜像 networks: app-network: