diff --git a/.github/workflows/docker-image-en.yml b/.github/workflows/docker-image-amd64-en.yml similarity index 94% rename from .github/workflows/docker-image-en.yml rename to .github/workflows/docker-image-amd64-en.yml index e894448fc6..31c01e8001 100644 --- a/.github/workflows/docker-image-en.yml +++ b/.github/workflows/docker-image-amd64-en.yml @@ -1,4 +1,4 @@ -name: Publish Docker image (English) +name: Publish Docker image (amd64, English) on: push: @@ -51,7 +51,6 @@ jobs: uses: docker/build-push-action@v3 with: context: . - platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image-amd64.yml similarity index 95% rename from .github/workflows/docker-image.yml rename to .github/workflows/docker-image-amd64.yml index 572241354e..1b9983c608 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image-amd64.yml @@ -1,4 +1,4 @@ -name: Publish Docker image +name: Publish Docker image (amd64) on: push: @@ -56,7 +56,6 @@ jobs: uses: docker/build-push-action@v3 with: context: . - platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.github/workflows/docker-image-arm64.yml b/.github/workflows/docker-image-arm64.yml new file mode 100644 index 0000000000..dc2b4b97ce --- /dev/null +++ b/.github/workflows/docker-image-arm64.yml @@ -0,0 +1,69 @@ +name: Publish Docker image (arm64) + +on: + push: + tags: + - 'v*.*.*' + - '!*-alpha*' + workflow_dispatch: + inputs: + name: + description: 'reason' + required: false +jobs: + push_to_registries: + name: Push Docker image to multiple registries + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Check repository URL + run: | + REPO_URL=$(git config --get remote.origin.url) + if [[ $REPO_URL == *"pro" ]]; then + exit 1 + fi + + - name: Save version info + run: | + git describe --tags > VERSION + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: | + justsong/one-api + ghcr.io/${{ github.repository }} + + - name: Build and push Docker images + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 8154e4dcce..29b4ca71cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM node:16 as builder +FROM node:16 as builder WORKDIR /web COPY ./VERSION .