From 123b0f19dbcd0542a73df6f487372ace03bfc5ff Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Thu, 4 Aug 2022 22:51:20 +1200 Subject: [PATCH] Feature:: Add multi-arch docker image Resolves #2 --- .dockerignore | 2 ++ .github/workflows/build-docker.yml | 37 ++++++++++++++++++++++++++++++ Dockerfile | 20 ++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/build-docker.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..bc377d6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +/node_modules +/mailpit diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml new file mode 100644 index 0000000..8c1858c --- /dev/null +++ b/.github/workflows/build-docker.yml @@ -0,0 +1,37 @@ +on: + release: + types: [created] + +name: Build docker images +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Get tag + id: tag + uses: dawidd6/action-get-tag@v1 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_ACCESS_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64,linux/arm64,linux/arm + build-args: | + "VERSION=${{ steps.tag.outputs.tag }}" + push: true + tags: axllent/mailpit:latest,axllent/mailpit:${{ steps.tag.outputs.tag }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e6b0126 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM golang:alpine as builder + +ARG VERSION=dev + +COPY . /app + +WORKDIR /app + +RUN apk add --no-cache git npm && \ +npm install && npm run package && \ +CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/axllent/mailpit/cmd.Version=${VERSION}" -o /mailpit + + +FROM alpine:latest + +COPY --from=builder /mailpit /mailpit + +RUN apk add --no-cache tzdata + +ENTRYPOINT ["/mailpit"]