Skip to content

Commit 91d3ca7

Browse files
authored
feat(ci): enable pushing multi-platform docker images (#226)
1 parent 30791f7 commit 91d3ca7

File tree

4 files changed

+76
-12
lines changed

4 files changed

+76
-12
lines changed

.github/workflows/ci_docker.yml

+9-7
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ on:
44
release:
55
types: [published]
66
workflow_dispatch: {}
7-
push:
8-
branches:
9-
- "dev-docker"
7+
# push:
8+
# branches:
9+
# - "dev-docker"
1010

1111
jobs:
1212
push_to_registry:
@@ -16,27 +16,29 @@ jobs:
1616
- name: Checkout
1717
uses: actions/checkout@v2
1818
- name: Set up QEMU
19-
uses: docker/setup-qemu-action@v1
19+
uses: docker/setup-qemu-action@v3
2020
- name: Set up Docker Buildx
21-
uses: docker/setup-buildx-action@v1
21+
uses: docker/setup-buildx-action@v3
2222
- name: Login to Docker Hub
23-
uses: docker/login-action@v1
23+
uses: docker/login-action@v3
2424
with:
2525
username: ${{ secrets.DOCKER_USERNAME }}
2626
password: ${{ secrets.DOCKER_PASSWORD }}
2727
- name: Set version
2828
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
2929
- name: Build and push to Docker Hub with version tag
30-
uses: docker/build-push-action@v2
30+
uses: docker/build-push-action@v6
3131
with:
3232
context: .
33+
platforms: linux/amd64, linux/arm64
3334
file: ./Dockerfile_default
3435
push: true
3536
tags: hexxa/quickshare:${{ env.RELEASE_VERSION }}
3637
- name: Build and push to Docker Hub with latest tag
3738
uses: docker/build-push-action@v2
3839
with:
3940
context: .
41+
platforms: linux/amd64, linux/arm64
4042
file: ./Dockerfile_default
4143
push: true
4244
tags: hexxa/quickshare:latest
+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: ci-docker-test
2+
3+
on:
4+
# release:
5+
# types: [published]
6+
# workflow_dispatch: {}
7+
push:
8+
branches:
9+
- "dev-docker"
10+
11+
env:
12+
REGISTRY: ghcr.io
13+
IMAGE_NAME: ${{ github.repository }}
14+
15+
jobs:
16+
push_to_registry:
17+
name: Push Docker image to Docker Hub
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v2
22+
- name: Set up QEMU
23+
uses: docker/setup-qemu-action@v3
24+
- name: Set up Docker Buildx
25+
uses: docker/setup-buildx-action@v3
26+
- name: Login to Docker Hub
27+
uses: docker/login-action@v3
28+
with:
29+
registry: ${{ env.REGISTRY }}
30+
username: ihexxa
31+
password: ${{ secrets.GHCR_PWD }}
32+
- name: Set version
33+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
34+
- name: Extract metadata (tags, labels) for Docker
35+
id: meta
36+
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
37+
with:
38+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
39+
- name: Build and push to Docker Hub with version tag
40+
uses: docker/build-push-action@v6
41+
with:
42+
context: .
43+
platforms: linux/amd64, linux/arm64
44+
file: ./Dockerfile_default
45+
push: true
46+
tags: ghcr.io/ihexxa/quickshare:${{ env.RELEASE_VERSION }}
47+
labels: ${{ steps.meta.outputs.labels }}
48+
- name: Build and push to Docker Hub with version tag
49+
uses: docker/build-push-action@v6
50+
with:
51+
context: .
52+
platforms: linux/amd64, linux/arm64
53+
file: ./Dockerfile_default
54+
push: true
55+
tags: ghcr.io/ihexxa/quickshare:latest
56+
labels: ${{ steps.meta.outputs.labels }}
57+
# - name: Generate artifact attestation
58+
# uses: actions/attest-build-provenance@v2
59+
# with:
60+
# subject-name: ghcr.io/ihexxa/quickshare:${{ env.RELEASE_VERSION }}
61+
# subject-digest: ${{ steps.push.outputs.digest }}
62+
# push-to-registry: true

Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FROM node:lts as build-fe
1+
FROM node:lts AS build-fe
22
ADD . /quickshare
33
WORKDIR /quickshare
44
RUN yarn run build:fe
55

6-
FROM golang:1.18 as build-be
6+
FROM golang:1.18 AS build-be
77
COPY --from=build-fe /quickshare /quickshare
88
WORKDIR /quickshare
99
RUN /quickshare/scripts/build_exec.sh

Dockerfile_default

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM node:lts as build-fe
1+
FROM node:lts AS build-fe
22
ADD . /quickshare
33
WORKDIR /quickshare
44
RUN yarn run build:fe
55

6-
FROM golang:1.18 as build-be
6+
FROM golang:1.23 AS build-be
77
COPY --from=build-fe /quickshare /quickshare
88
WORKDIR /quickshare
9-
RUN /quickshare/scripts/build_exec.sh
9+
RUN `which go` build -o /quickshare/dist/quickshare/start /quickshare/cmd/start
1010

1111
FROM debian:stable-slim
1212
RUN groupadd -g 8686 quickshare

0 commit comments

Comments
 (0)