name: Docker Build and Deploy on: push: branches: [ main ] paths: - 'containers/**' - 'Dockerfile*' - '.gitea/workflows/docker.yml' jobs: build: runs-on: ubuntu-latest name: Build Docker Images steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Container Registry uses: docker/login-action@v3 with: registry: ${{ secrets.REGISTRY_URL }} username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Build and push images run: | # 构建应用镜像 for dockerfile in containers/applications/*/Dockerfile; do if [ -f "$dockerfile" ]; then app_name=$(basename $(dirname "$dockerfile")) echo "Building $app_name" docker build -t "${{ secrets.REGISTRY_URL }}/$app_name:${{ github.sha }}" -f "$dockerfile" . docker push "${{ secrets.REGISTRY_URL }}/$app_name:${{ github.sha }}" fi done deploy-swarm: runs-on: ubuntu-latest name: Deploy to Docker Swarm needs: build steps: - name: Checkout uses: actions/checkout@v4 - name: Deploy to Swarm run: | # 这里可以通过 SSH 连接到 Swarm 管理节点进行部署 echo "Deploy to Swarm placeholder"