fix dockerfile for arm64

This commit is contained in:
Jun Kurihara 2023-07-25 00:11:44 +09:00
commit deb7eb1202
No known key found for this signature in database
GPG key ID: 48ADFD173ED22B03
5 changed files with 19 additions and 74 deletions

View file

@ -21,6 +21,9 @@ jobs:
- name: GitHub Environment - name: GitHub Environment
run: echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV run: echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
@ -39,9 +42,11 @@ jobs:
tags: | tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
file: ./docker/Dockerfile file: ./docker/Dockerfile
platforms: linux/amd64 cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
- name: Release build and push x86_64-slim - name: Release build and push slim
if: ${{ env.BRANCH == 'main' }} if: ${{ env.BRANCH == 'main' }}
uses: docker/build-push-action@v4 uses: docker/build-push-action@v4
with: with:
@ -50,7 +55,9 @@ jobs:
tags: | tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:slim, ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest-slim ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:slim, ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest-slim
file: ./docker/Dockerfile.amd64-slim file: ./docker/Dockerfile.amd64-slim
platforms: linux/amd64 cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
- name: Nightly build and push - name: Nightly build and push
if: ${{ env.BRANCH == 'develop' }} if: ${{ env.BRANCH == 'develop' }}
@ -61,4 +68,6 @@ jobs:
tags: | tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:nightly ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:nightly
file: ./docker/Dockerfile file: ./docker/Dockerfile
platforms: linux/amd64 cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64

View file

@ -1,64 +0,0 @@
name: Build and Publish Docker Aarch64
on:
push:
branches:
- main
- develop
jobs:
build_and_push:
runs-on: ubuntu-latest
env:
IMAGE_NAME: rpxy
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: GitHub Environment
run: echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Release build and push
if: ${{ env.BRANCH == 'main' }}
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
file: ./docker/Dockerfile
platforms: linux/arm64
- name: Release build and push aarch64-slim
if: ${{ env.BRANCH == 'main' }}
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:slim, ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest-slim
file: ./docker/Dockerfile.arm64-slim
platforms: linux/arm64
- name: Nightly build and push
if: ${{ env.BRANCH == 'develop' }}
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:nightly
file: ./docker/Dockerfile
platforms: linux/arm64

View file

@ -6,7 +6,7 @@ SHELL ["/bin/sh", "-x", "-c"]
ENV SERIAL 2 ENV SERIAL 2
######################################## ########################################
FROM base as builder FROM --platform=$BUILDPLATFORM base AS builder
ENV CFLAGS=-Ofast ENV CFLAGS=-Ofast
ENV BUILD_DEPS curl make ca-certificates build-essential ENV BUILD_DEPS curl make ca-certificates build-essential
@ -27,7 +27,7 @@ RUN apt-get update && apt-get install -qy --no-install-recommends $BUILD_DEPS &&
strip --strip-all /tmp/target/release/rpxy strip --strip-all /tmp/target/release/rpxy
######################################## ########################################
FROM base AS runner FROM --platform=$TARGETPLATFORM base AS runner
ENV RUNTIME_DEPS logrotate ca-certificates gosu ENV RUNTIME_DEPS logrotate ca-certificates gosu

View file

@ -1,5 +1,5 @@
######################################## ########################################
FROM messense/rust-musl-cross:x86_64-musl as builder FROM --platform=$BUILDPLATFORM messense/rust-musl-cross:x86_64-musl AS builder
ENV TARGET_DIR=x86_64-unknown-linux-musl ENV TARGET_DIR=x86_64-unknown-linux-musl
ENV CFLAGS=-Ofast ENV CFLAGS=-Ofast
@ -15,7 +15,7 @@ RUN echo "Building rpxy from source" && \
musl-strip --strip-all /tmp/target/${TARGET_DIR}/release/rpxy musl-strip --strip-all /tmp/target/${TARGET_DIR}/release/rpxy
######################################## ########################################
FROM alpine:latest as runner FROM --platform=$TARGETPLATFORM alpine:latest AS runner
LABEL maintainer="Jun Kurihara" LABEL maintainer="Jun Kurihara"
ENV TARGET_DIR=x86_64-unknown-linux-musl ENV TARGET_DIR=x86_64-unknown-linux-musl

View file

@ -1,5 +1,5 @@
######################################## ########################################
FROM messense/rust-musl-cross:aarch64-musl as builder FROM --platform=$BUILDPLATFORM messense/rust-musl-cross:aarch64-musl AS builder
ENV TARGET_DIR=aarch64-unknown-linux-musl ENV TARGET_DIR=aarch64-unknown-linux-musl
ENV CFLAGS=-Ofast ENV CFLAGS=-Ofast
@ -15,7 +15,7 @@ RUN echo "Building rpxy from source" && \
musl-strip --strip-all /tmp/target/${TARGET_DIR}/release/rpxy musl-strip --strip-all /tmp/target/${TARGET_DIR}/release/rpxy
######################################## ########################################
FROM alpine:latest as runner FROM --platform=$TARGETPLATFORM alpine:latest AS runner
LABEL maintainer="Jun Kurihara" LABEL maintainer="Jun Kurihara"
ENV TARGET_DIR=aarch64-unknown-linux-musl ENV TARGET_DIR=aarch64-unknown-linux-musl