Browse Source

Merge pull request #480 from mattkasun/master

Fix workflow Publish Docker arm64 images as well as x86
Alex 3 years ago
parent
commit
f2ccca5a46
2 changed files with 45 additions and 18 deletions
  1. 41 7
      .github/workflows/publish-docker.yml
  2. 4 11
      Dockerfile

+ 41 - 7
.github/workflows/publish-docker.yml

@@ -13,7 +13,8 @@ jobs:
   docker:
     runs-on: ubuntu-latest
     steps:
-      - name: Set tag
+      - 
+        name: Set tag
         run: |
             if [[ -n "${{ github.event.inputs.tag }}" ]]; then
               TAG=${{ github.event.inputs.tag }}
@@ -23,21 +24,54 @@ jobs:
               TAG="${{ github.base_ref }}"
             fi
             echo "TAG=${TAG}" >> $GITHUB_ENV
-      - name: Checkout
+      - 
+        name: Checkout
         uses: actions/checkout@v2
-      - name: Set up QEMU
+      - 
+        name: Set up QEMU
         uses: docker/setup-qemu-action@v1
-      - name: Set up Docker Buildx
+      - 
+        name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v1
-      - name: Login to DockerHub
+      - 
+        name: Login to DockerHub
         uses: docker/login-action@v1
         with:
           username: ${{ secrets.DOCKERHUB_USERNAME }}
           password: ${{ secrets.DOCKERHUB_TOKEN }}
-      - name: Build and push latest
+      - 
+        name: Build x86 and export to Docker
+        uses: docker/build-push-action@v2
+        with:
+          context: .
+          load: true
+          platforms: linux/amd64
+          tags: ${{ env.TAG }}
+      -
+        name: Test x86
+        run: |
+            docker run --rm ${{ env.TAG }}&
+            sleep 10
+            kill %1
+      -
+        name: Build arm and export to Docker
+        uses: docker/build-push-action@v2
+        with:
+          context: .
+          load: true
+          platforms: linux/arm64
+          tags: ${{ env.TAG }}
+      -
+        name: Test arm
+        run: |
+            docker run --rm ${{ env.TAG }}&
+            sleep 10
+            kill %1
+      -
+        name: Build and push
         uses: docker/build-push-action@v2
         with:
           context: .
           platforms: linux/amd64, linux/arm64
           push: true
-          tags: gravitl/netmaker:${{ env.TAG }}
+          tags: ${{ github.repository }}:${{ env.TAG }}

+ 4 - 11
Dockerfile

@@ -1,26 +1,19 @@
 #first stage - builder
-FROM gravitl/builder as builder
-
+FROM golang:1.15-alpine as builder
+ARG version
+RUN apk add build-base
 WORKDIR /app
-
 COPY . .
-
 ENV GO111MODULE=auto
-
-RUN GOOS=linux CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netmaker main.go
-
+RUN GOOS=linux CGO_ENABLED=1 go build -ldflags="-s -X 'main.version=$version'" -o netmaker main.go
 FROM alpine:3.13.6
 # add a c lib
 RUN apk add gcompat iptables
 # set the working directory
 WORKDIR /root/
-
 RUN mkdir -p /etc/netclient/config
-
 COPY --from=builder /app/netmaker .
 COPY --from=builder /app/config config
-
 EXPOSE 8081
 EXPOSE 50051
-
 ENTRYPOINT ["./netmaker"]