diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..f60b528 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,38 @@ +name: Build and Push Docker Image + +on: + push: + tags: + - 'v*.*.*' # 仅当推送标签(例如 v1.0.0)时触发 + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_ACCESS_TOKEN }} + + + + - name: Extract version from tag + id: vars + run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + + - name: Build and push Docker image + id: push + uses: docker/build-push-action@v6 + with: + context: . + file: ./Dockerfile + push: true + tags: lejianwen/rustdesk-api:latest, lejianwen/rustdesk-api:${{ env.TAG }} diff --git a/Dockerfile b/Dockerfile index 310e0bf..472d80b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,11 +17,7 @@ RUN set -eux; \ swag init -g cmd/apimain.go --output docs/api --instanceName api --exclude http/controller/admin; \ swag init -g cmd/apimain.go --output docs/admin --instanceName admin --exclude http/controller/api; \ go env -w GO111MODULE=on;\ - go env -w CGO_ENABLED=1;\ - go env -w GOOS=linux;\ - go env -w GOARCH=amd64;\ - go env -w CGO_LDFLAGS="-static"; \ - go build -o release/apimain cmd/apimain.go; \ + CGO_LDFLAGS="-static" CGO_ENABLED=1 go build -ldflags "-s -w" -o ./release/apimain ./cmd/apimain.go; \ cp -ar resources release/; \ mkdir -p release/resources/public; \ cp -ar docs release/; \