Merge pull request #35 from SShah7433/feature/cross-platform-build

Automatically create amd64 and arm64 Docker images
This commit is contained in:
Vincent Composieux 2020-04-05 16:28:44 +02:00 committed by GitHub
commit bd901d9bb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 1 deletions

43
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,43 @@
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a single command using the runners shell
- name: Build and Push Docker Image (Linux - AMD64)
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter
tag_with_sha: true
tags: amd64
build_args: OS=linux,ARCH=amd64
- name: Build and Push Docker Image (Linux - ARM64)
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ekofr/pihole-exporter
tag_with_sha: true
tags: arm64
build_args: OS=linux,ARCH=arm64

View File

@ -1,5 +1,8 @@
FROM golang:alpine as builder
ARG OS=linux
ARG ARCH=amd64
WORKDIR /go/src/github.com/eko/pihole-exporter
COPY . .
@ -7,7 +10,7 @@ RUN apk update && \
apk --no-cache add git alpine-sdk upx
RUN GO111MODULE=on go mod vendor
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-s -w' -o binary ./
RUN CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH go build -ldflags '-s -w' -o binary ./
RUN upx -f --brute binary
FROM scratch