ljw 1 год назад
Родитель
Сommit
5b5943b287
2 измененных файлов с 39 добавлено и 5 удалено
  1. 38 0
      .github/workflows/docker.yml
  2. 1 5
      Dockerfile

+ 38 - 0
.github/workflows/docker.yml

@@ -0,0 +1,38 @@
1
+name: Build and Push Docker Image
2
+
3
+on:
4
+  push:
5
+    tags:
6
+      - 'v*.*.*'  # 仅当推送标签(例如 v1.0.0)时触发
7
+
8
+jobs:
9
+  build:
10
+    runs-on: ubuntu-latest
11
+
12
+    steps:
13
+      - name: Checkout code
14
+        uses: actions/checkout@v4
15
+
16
+      - name: Set up Docker Buildx
17
+        uses: docker/setup-buildx-action@v3
18
+
19
+      - name: Log in to Docker Hub
20
+        uses: docker/login-action@v2
21
+        with:
22
+          username: ${{ secrets.DOCKER_USERNAME }}
23
+          password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
24
+
25
+
26
+
27
+      - name: Extract version from tag
28
+        id: vars
29
+        run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
30
+
31
+      - name: Build and push Docker image
32
+        id: push
33
+        uses: docker/build-push-action@v6
34
+        with:
35
+          context: .
36
+          file: ./Dockerfile
37
+          push: true
38
+          tags: lejianwen/rustdesk-api:latest, lejianwen/rustdesk-api:${{ env.TAG }}

+ 1 - 5
Dockerfile

@@ -17,11 +17,7 @@ RUN set -eux; \
17 17
     swag init -g cmd/apimain.go --output docs/api --instanceName api --exclude http/controller/admin; \
18 18
     swag init -g cmd/apimain.go --output docs/admin --instanceName admin --exclude http/controller/api; \
19 19
     go env -w GO111MODULE=on;\
20
-    go env -w CGO_ENABLED=1;\
21
-    go env -w GOOS=linux;\
22
-    go env -w GOARCH=amd64;\
23
-    go env -w CGO_LDFLAGS="-static"; \
24
-    go build -o release/apimain cmd/apimain.go; \
20
+    CGO_LDFLAGS="-static" CGO_ENABLED=1 go build -ldflags "-s -w" -o ./release/apimain ./cmd/apimain.go; \
25 21
     cp -ar resources release/; \
26 22
     mkdir -p release/resources/public; \
27 23
     cp -ar docs release/; \