From 694f2066e1bfe6045122704c5ffa2d96e6eebcf1 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 09:57:31 +0100 Subject: [PATCH 01/15] Multiplatform and staged builds Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 2 +- werf.yaml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index 3e33a2d..0964688 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -24,7 +24,7 @@ jobs: with: fetch-depth: 0 - - uses: werf/actions/install@v1.2 + - uses: werf/actions/install@v2 - name: Login into ghcr.io shell: bash diff --git a/werf.yaml b/werf.yaml index 1a051b6..16138b0 100644 --- a/werf.yaml +++ b/werf.yaml @@ -1,5 +1,8 @@ project: ovpn-admin configVersion: 1 +build: + platform: ['linux/amd64','linux/arm64','linux/arm','linux/386'] + staged: true --- image: ovpn-admin dockerfile: Dockerfile.ovpn-admin From 043254dececc44378a5ea853993a8b74cbe418f4 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:03:02 +0100 Subject: [PATCH 02/15] Enable buildah Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index 0964688..48d7fa6 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -11,12 +11,12 @@ on: env: WERF_STAGED_DOCKERFILE_VERSION: v2 - # WERF_BUILDAH_MODE: auto + WERF_BUILDAH_MODE: auto jobs: build: name: build images for tag - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout code From 9c64b7ed06fbc1588b4da528bca3a5d234d0731e Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:09:27 +0100 Subject: [PATCH 03/15] Remove 386 Signed-off-by: maksim.nabokikh --- werf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/werf.yaml b/werf.yaml index 16138b0..717ec9a 100644 --- a/werf.yaml +++ b/werf.yaml @@ -1,7 +1,7 @@ project: ovpn-admin configVersion: 1 build: - platform: ['linux/amd64','linux/arm64','linux/arm','linux/386'] + platform: ['linux/amd64','linux/arm64','linux/arm'] staged: true --- image: ovpn-admin From bdfe629c61d9dd397157d21e199ec066b671f331 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:12:31 +0100 Subject: [PATCH 04/15] Remove remove arm Signed-off-by: maksim.nabokikh --- werf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/werf.yaml b/werf.yaml index 717ec9a..e30d81a 100644 --- a/werf.yaml +++ b/werf.yaml @@ -1,7 +1,7 @@ project: ovpn-admin configVersion: 1 build: - platform: ['linux/amd64','linux/arm64','linux/arm'] + platform: ['linux/amd64','linux/arm64'] staged: true --- image: ovpn-admin From 6654e5377aca0ff78aefab2cf4afd969764e4143 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:35:23 +0100 Subject: [PATCH 05/15] echo ${TARGETARCH} Signed-off-by: maksim.nabokikh --- Dockerfile.ovpn-admin | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.ovpn-admin b/Dockerfile.ovpn-admin index 2d7f428..e37827d 100644 --- a/Dockerfile.ovpn-admin +++ b/Dockerfile.ovpn-admin @@ -13,6 +13,7 @@ FROM alpine:3.21 WORKDIR /app COPY --from=backend-builder /app/ovpn-admin /app ARG TARGETARCH +RUN echo ${TARGETARCH} RUN apk add --update bash easy-rsa openssl openvpn coreutils && \ ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \ wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.4/openvpn-user-linux-${TARGETARCH}.tar.gz -O - | tar xz -C /usr/local/bin && \ From 3fea2aebf0fdc23b28b130874de51b4b70c0b015 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:36:59 +0100 Subject: [PATCH 06/15] echo ${TARGETARCH} Signed-off-by: maksim.nabokikh --- Dockerfile.ovpn-admin | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile.ovpn-admin b/Dockerfile.ovpn-admin index e37827d..2d7f428 100644 --- a/Dockerfile.ovpn-admin +++ b/Dockerfile.ovpn-admin @@ -13,7 +13,6 @@ FROM alpine:3.21 WORKDIR /app COPY --from=backend-builder /app/ovpn-admin /app ARG TARGETARCH -RUN echo ${TARGETARCH} RUN apk add --update bash easy-rsa openssl openvpn coreutils && \ ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \ wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.4/openvpn-user-linux-${TARGETARCH}.tar.gz -O - | tar xz -C /usr/local/bin && \ From dd7fa879b11e9d64ce082702b8541e6c69b85d2c Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:40:48 +0100 Subject: [PATCH 07/15] staged false Signed-off-by: maksim.nabokikh --- werf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/werf.yaml b/werf.yaml index e30d81a..256c5a5 100644 --- a/werf.yaml +++ b/werf.yaml @@ -2,7 +2,7 @@ project: ovpn-admin configVersion: 1 build: platform: ['linux/amd64','linux/arm64'] - staged: true + staged: false --- image: ovpn-admin dockerfile: Dockerfile.ovpn-admin From 733abab0f953f219d9ff49710d5fa476b0c251fd Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:43:01 +0100 Subject: [PATCH 08/15] Add debug Signed-off-by: maksim.nabokikh --- Dockerfile.openvpn | 3 ++- Dockerfile.ovpn-admin | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile.openvpn b/Dockerfile.openvpn index 7b69f1e..7853019 100644 --- a/Dockerfile.openvpn +++ b/Dockerfile.openvpn @@ -1,9 +1,10 @@ FROM alpine:3.21 ARG TARGETARCH +RUN echo ${TARGETARCH} RUN apk add --update bash openvpn easy-rsa iptables && \ ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \ wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.4/openvpn-user-linux-${TARGETARCH}.tar.gz -O - | tar xz -C /usr/local/bin && \ rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /var/cache/distfiles/* RUN if [ -f "/usr/local/bin/openvpn-user-${TARGETARCH}" ]; then ln -s /usr/local/bin/openvpn-user-${TARGETARCH} /usr/local/bin/openvpn-user; fi COPY setup/ /etc/openvpn/setup -RUN chmod +x /etc/openvpn/setup/configure.sh \ No newline at end of file +RUN chmod +x /etc/openvpn/setup/configure.sh diff --git a/Dockerfile.ovpn-admin b/Dockerfile.ovpn-admin index 2d7f428..711e50f 100644 --- a/Dockerfile.ovpn-admin +++ b/Dockerfile.ovpn-admin @@ -1,5 +1,6 @@ FROM node:16-alpine3.15 AS frontend-builder COPY ../frontend /app +RUN echo ${TARGETARCH} RUN apk add --update python3 make g++ && cd /app && npm install && npm run build FROM golang:1.23.6-bullseye AS backend-builder @@ -7,12 +8,14 @@ RUN go install github.com/gobuffalo/packr/v2/packr2@latest COPY --from=frontend-builder /app/static /app/frontend/static COPY .. /app ARG TARGETARCH +RUN echo ${TARGETARCH} RUN cd /app && packr2 && env CGO_ENABLED=1 GOOS=linux GOARCH=${TARGETARCH} go build -a -tags netgo -ldflags '-linkmode external -extldflags -static -s -w' -o ovpn-admin && packr2 clean FROM alpine:3.21 WORKDIR /app COPY --from=backend-builder /app/ovpn-admin /app ARG TARGETARCH +RUN echo ${TARGETARCH} RUN apk add --update bash easy-rsa openssl openvpn coreutils && \ ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \ wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.4/openvpn-user-linux-${TARGETARCH}.tar.gz -O - | tar xz -C /usr/local/bin && \ From 3f361ff566fb502f67e791e622de02e72d807920 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:49:58 +0100 Subject: [PATCH 09/15] Disable buildah Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 2 +- Dockerfile.openvpn | 1 - Dockerfile.ovpn-admin | 3 --- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index 48d7fa6..aceed9b 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -11,7 +11,7 @@ on: env: WERF_STAGED_DOCKERFILE_VERSION: v2 - WERF_BUILDAH_MODE: auto + # WERF_BUILDAH_MODE: auto jobs: build: diff --git a/Dockerfile.openvpn b/Dockerfile.openvpn index 7853019..e4a86cb 100644 --- a/Dockerfile.openvpn +++ b/Dockerfile.openvpn @@ -1,6 +1,5 @@ FROM alpine:3.21 ARG TARGETARCH -RUN echo ${TARGETARCH} RUN apk add --update bash openvpn easy-rsa iptables && \ ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \ wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.4/openvpn-user-linux-${TARGETARCH}.tar.gz -O - | tar xz -C /usr/local/bin && \ diff --git a/Dockerfile.ovpn-admin b/Dockerfile.ovpn-admin index 711e50f..2d7f428 100644 --- a/Dockerfile.ovpn-admin +++ b/Dockerfile.ovpn-admin @@ -1,6 +1,5 @@ FROM node:16-alpine3.15 AS frontend-builder COPY ../frontend /app -RUN echo ${TARGETARCH} RUN apk add --update python3 make g++ && cd /app && npm install && npm run build FROM golang:1.23.6-bullseye AS backend-builder @@ -8,14 +7,12 @@ RUN go install github.com/gobuffalo/packr/v2/packr2@latest COPY --from=frontend-builder /app/static /app/frontend/static COPY .. /app ARG TARGETARCH -RUN echo ${TARGETARCH} RUN cd /app && packr2 && env CGO_ENABLED=1 GOOS=linux GOARCH=${TARGETARCH} go build -a -tags netgo -ldflags '-linkmode external -extldflags -static -s -w' -o ovpn-admin && packr2 clean FROM alpine:3.21 WORKDIR /app COPY --from=backend-builder /app/ovpn-admin /app ARG TARGETARCH -RUN echo ${TARGETARCH} RUN apk add --update bash easy-rsa openssl openvpn coreutils && \ ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \ wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.4/openvpn-user-linux-${TARGETARCH}.tar.gz -O - | tar xz -C /usr/local/bin && \ From 476bb252a1d30f237efd8f06c990b82337553e7c Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:51:55 +0100 Subject: [PATCH 10/15] Remove arm64 Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 2 +- werf.yaml | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index aceed9b..48d7fa6 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -11,7 +11,7 @@ on: env: WERF_STAGED_DOCKERFILE_VERSION: v2 - # WERF_BUILDAH_MODE: auto + WERF_BUILDAH_MODE: auto jobs: build: diff --git a/werf.yaml b/werf.yaml index 256c5a5..8aaf4b2 100644 --- a/werf.yaml +++ b/werf.yaml @@ -1,8 +1,10 @@ project: ovpn-admin configVersion: 1 build: - platform: ['linux/amd64','linux/arm64'] - staged: false + platform: + - 'linux/amd64' + # - 'linux/arm64' + staged: true --- image: ovpn-admin dockerfile: Dockerfile.ovpn-admin From 5a2a6c3b7493193ea53ee10345d39fadcc893d3c Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:53:42 +0100 Subject: [PATCH 11/15] Bring arm64 back Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 6 +++++- werf.yaml | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index 48d7fa6..a0c80e9 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -24,7 +24,11 @@ jobs: with: fetch-depth: 0 - - uses: werf/actions/install@v2 + - name: Install werf + uses: werf/actions/install@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Login into ghcr.io shell: bash diff --git a/werf.yaml b/werf.yaml index 8aaf4b2..3155744 100644 --- a/werf.yaml +++ b/werf.yaml @@ -2,8 +2,8 @@ project: ovpn-admin configVersion: 1 build: platform: - - 'linux/amd64' - # - 'linux/arm64' + - linux/amd64 + - linux/arm64 staged: true --- image: ovpn-admin From fdd5ae28ee00361268aa497c835022e045aa8bfe Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 10:54:56 +0100 Subject: [PATCH 12/15] Remove arm64 again Signed-off-by: maksim.nabokikh --- werf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/werf.yaml b/werf.yaml index 3155744..c57338f 100644 --- a/werf.yaml +++ b/werf.yaml @@ -3,7 +3,7 @@ configVersion: 1 build: platform: - linux/amd64 - - linux/arm64 + # - linux/arm64 staged: true --- image: ovpn-admin From 2291a313575711316f1112c0523e7e443ceb958b Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 11:00:36 +0100 Subject: [PATCH 13/15] Docker + buildx Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 2 +- werf.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index a0c80e9..3a5fe57 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -11,7 +11,7 @@ on: env: WERF_STAGED_DOCKERFILE_VERSION: v2 - WERF_BUILDAH_MODE: auto + # WERF_BUILDAH_MODE: auto jobs: build: diff --git a/werf.yaml b/werf.yaml index c57338f..3155744 100644 --- a/werf.yaml +++ b/werf.yaml @@ -3,7 +3,7 @@ configVersion: 1 build: platform: - linux/amd64 - # - linux/arm64 + - linux/arm64 staged: true --- image: ovpn-admin From c4813a61bb31e4bfed1bbdf8fbbd230156a259d9 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 11:01:44 +0100 Subject: [PATCH 14/15] No stages Signed-off-by: maksim.nabokikh --- werf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/werf.yaml b/werf.yaml index 3155744..c99cbcb 100644 --- a/werf.yaml +++ b/werf.yaml @@ -4,7 +4,7 @@ build: platform: - linux/amd64 - linux/arm64 - staged: true + staged: false --- image: ovpn-admin dockerfile: Dockerfile.ovpn-admin From dbf2e87d38e9ce1e7e0a94b7aeeec85728c1a40c Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Tue, 4 Mar 2025 11:05:20 +0100 Subject: [PATCH 15/15] Go with QEMU Signed-off-by: maksim.nabokikh --- .github/workflows/publish-tag.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-tag.yaml b/.github/workflows/publish-tag.yaml index 3a5fe57..0641322 100644 --- a/.github/workflows/publish-tag.yaml +++ b/.github/workflows/publish-tag.yaml @@ -27,8 +27,10 @@ jobs: - name: Install werf uses: werf/actions/install@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: linux/amd64, linux/arm64 - name: Login into ghcr.io shell: bash