aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2021-01-18 12:24:23 +0000
committerNeil Alexander <neilalexander@users.noreply.github.com>2021-01-18 12:24:23 +0000
commitcf82e08096f6b0035baf377c6dc4243c20ecadef (patch)
tree51d176f72c534acdd786d3b14a5ae6b93612f1eb
parentdf4386f764268b410657ab8c6b2bb4fc40819823 (diff)
Update GHA Docker Hub builds
Squashed commit of the following: commit 4a61aa711473deece2adf415cfd65501dbca63b2 Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Mon Jan 18 12:19:24 2021 +0000 Set back to matrixdotorg on published releases commit 6d1ac53f2c0c9b30e1e70c0bb1559e1b8ec874a2 Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Mon Jan 18 11:55:28 2021 +0000 Rename commit 258999f7fb7b655b3a02a06a7ea05e66fb7740fb Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Mon Jan 18 11:52:26 2021 +0000 Refactor multi-stage builds commit c7ab8e476939899571e7b5668860dec372b9b60f Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Mon Jan 18 11:13:19 2021 +0000 Let's try this again
-rw-r--r--.github/workflows/docker-hub.yml (renamed from .github/workflows/docker-build-and-push.yml)71
-rw-r--r--build/docker/Dockerfile10
-rw-r--r--build/docker/Dockerfile.monolith19
-rw-r--r--build/docker/Dockerfile.polylith19
-rwxr-xr-xbuild/docker/images-build.sh2
5 files changed, 62 insertions, 59 deletions
diff --git a/.github/workflows/docker-build-and-push.yml b/.github/workflows/docker-hub.yml
index 85aa0ab5..84745f7b 100644
--- a/.github/workflows/docker-build-and-push.yml
+++ b/.github/workflows/docker-hub.yml
@@ -1,73 +1,70 @@
# Based on https://github.com/docker/build-push-action
-name: "Docker Multiarch Build & Push"
+name: "Docker Hub"
on:
- push:
-# types: [published]
- branches: [docker]
+ release:
+ types: [published]
env:
- DOCKER_HUB_USER: neilalexander
+ DOCKER_HUB_USER: matrixdotorg
+ PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7
jobs:
- BuildAndPush:
+ Monolith:
runs-on: ubuntu-latest
steps:
- -
- name: Checkout
+ - name: Checkout
uses: actions/checkout@v2
- -
- name: Get release tag
+ - name: Get release tag
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- -
- 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 Docker Hub
uses: docker/login-action@v1
with:
username: ${{ env.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_TOKEN }}
- -
- name: Build temporary (builder) image
- id: docker_build_temporary
- uses: docker/build-push-action@v2
- with:
- context: .
- file: ./build/docker/Dockerfile
- platforms: linux/amd64,linux/arm64,linux/arm/v7
- push: false
- tags: ${{ env.DOCKER_HUB_USER }}/dendrite:latest
- -
- name: Build monolith image
+
+ - name: Build monolith image
id: docker_build_monolith
uses: docker/build-push-action@v2
with:
context: .
file: ./build/docker/Dockerfile.monolith
- platforms: linux/amd64,linux/arm64,linux/arm/v7
+ platforms: ${{ env.PLATFORMS }}
push: true
tags: |
${{ env.DOCKER_HUB_USER }}/dendrite-monolith:latest
${{ env.DOCKER_HUB_USER }}/dendrite-monolith:${{ env.RELEASE_VERSION }}
- -
- name: Build polylith image
+
+ Polylith:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Get release tag
+ run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ env.DOCKER_HUB_USER }}
+ password: ${{ secrets.DOCKER_TOKEN }}
+
+ - name: Build polylith image
id: docker_build_polylith
uses: docker/build-push-action@v2
with:
context: .
file: ./build/docker/Dockerfile.polylith
- platforms: linux/amd64,linux/arm64,linux/arm/v7
+ platforms: ${{ env.PLATFORMS }}
push: true
tags: |
${{ env.DOCKER_HUB_USER }}/dendrite-polylith:latest
${{ env.DOCKER_HUB_USER }}/dendrite-polylith:${{ env.RELEASE_VERSION }}
- -
- name: Image digest
- run: |
- echo Monolith ( ${{ env.RELEASE_VERSION }} ) image digest - ${{ steps.docker_build_monolith.outputs.digest }}
- echo Polylith ( ${{ env.RELEASE_VERSION }} ) image digest - ${{ steps.docker_build_polylith.outputs.digest }}
diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
deleted file mode 100644
index 5cab0530..00000000
--- a/build/docker/Dockerfile
+++ /dev/null
@@ -1,10 +0,0 @@
-FROM docker.io/golang:1.15-alpine AS builder
-
-RUN apk --update --no-cache add bash build-base
-
-WORKDIR /build
-
-COPY . /build
-
-RUN mkdir -p bin
-RUN sh ./build.sh \ No newline at end of file
diff --git a/build/docker/Dockerfile.monolith b/build/docker/Dockerfile.monolith
index 3e9d0cba..eb099c4c 100644
--- a/build/docker/Dockerfile.monolith
+++ b/build/docker/Dockerfile.monolith
@@ -1,11 +1,20 @@
-FROM matrixdotorg/dendrite:latest AS base
+FROM docker.io/golang:1.15-alpine AS base
+
+RUN apk --update --no-cache add bash build-base
+
+WORKDIR /build
+
+COPY . /build
+
+RUN mkdir -p bin
+RUN go build -trimpath -o bin/ ./cmd/dendrite-monolith-server
+RUN go build -trimpath -o bin/ ./cmd/goose
+RUN go build -trimpath -o bin/ ./cmd/create-account
+RUN go build -trimpath -o bin/ ./cmd/generate-keys
FROM alpine:latest
-COPY --from=base /build/bin/dendrite-monolith-server /usr/bin
-COPY --from=base /build/bin/goose /usr/bin
-COPY --from=base /build/bin/create-account /usr/bin
-COPY --from=base /build/bin/generate-keys /usr/bin
+COPY --from=base /build/bin/* /usr/bin
VOLUME /etc/dendrite
WORKDIR /etc/dendrite
diff --git a/build/docker/Dockerfile.polylith b/build/docker/Dockerfile.polylith
index dd4cbd38..1a7ba193 100644
--- a/build/docker/Dockerfile.polylith
+++ b/build/docker/Dockerfile.polylith
@@ -1,11 +1,20 @@
-FROM matrixdotorg/dendrite:latest AS base
+FROM docker.io/golang:1.15-alpine AS base
+
+RUN apk --update --no-cache add bash build-base
+
+WORKDIR /build
+
+COPY . /build
+
+RUN mkdir -p bin
+RUN go build -trimpath -o bin/ ./cmd/dendrite-polylith-multi
+RUN go build -trimpath -o bin/ ./cmd/goose
+RUN go build -trimpath -o bin/ ./cmd/create-account
+RUN go build -trimpath -o bin/ ./cmd/generate-keys
FROM alpine:latest
-COPY --from=base /build/bin/dendrite-polylith-multi /usr/bin
-COPY --from=base /build/bin/goose /usr/bin
-COPY --from=base /build/bin/create-account /usr/bin
-COPY --from=base /build/bin/generate-keys /usr/bin
+COPY --from=base /build/bin/* /usr/bin
VOLUME /etc/dendrite
WORKDIR /etc/dendrite
diff --git a/build/docker/images-build.sh b/build/docker/images-build.sh
index f80f6bed..eaed5f6d 100755
--- a/build/docker/images-build.sh
+++ b/build/docker/images-build.sh
@@ -6,7 +6,5 @@ TAG=${1:-latest}
echo "Building tag '${TAG}'"
-docker build -f build/docker/Dockerfile -t matrixdotorg/dendrite:${TAG} .
-
docker build -t matrixdotorg/dendrite-monolith:${TAG} -f build/docker/Dockerfile.monolith .
docker build -t matrixdotorg/dendrite-polylith:${TAG} -f build/docker/Dockerfile.polylith . \ No newline at end of file