From d38a45cd8006ee9824aa1b2e196f56e4d33eadde Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:07:35 +0800 Subject: [PATCH 1/9] feat: add arm support --- Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 336b824..6cc4b98 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,10 @@ -FROM node:21-alpine AS base +# 添加多架构支持 +FROM --platform=linux/amd64 node:21-alpine AS base-amd64 +FROM --platform=linux/arm64 node:21-alpine AS base-arm64 + +# 选择基础镜像 +ARG TARGETARCH +FROM base-${TARGETARCH} AS base FROM base AS deps RUN apk add --no-cache libc6-compat From 99ec75b3eb64019da124bd90cbf5748403c05b7e Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:13:14 +0800 Subject: [PATCH 2/9] fix: add platforms --- .github/workflows/Deploy.yml | 1 + Dockerfile | 8 +------- bun.lockb | Bin 419594 -> 419594 bytes lib/serverFetch.tsx | 1 - 4 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/Deploy.yml b/.github/workflows/Deploy.yml index b4ca664..16d7fc5 100644 --- a/.github/workflows/Deploy.yml +++ b/.github/workflows/Deploy.yml @@ -41,6 +41,7 @@ jobs: uses: docker/build-push-action@v5 with: context: . + platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile index 6cc4b98..336b824 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,4 @@ -# 添加多架构支持 -FROM --platform=linux/amd64 node:21-alpine AS base-amd64 -FROM --platform=linux/arm64 node:21-alpine AS base-arm64 - -# 选择基础镜像 -ARG TARGETARCH -FROM base-${TARGETARCH} AS base +FROM node:21-alpine AS base FROM base AS deps RUN apk add --no-cache libc6-compat diff --git a/bun.lockb b/bun.lockb index 3f35af25937000d938a16787a41ebc3c1b7c59a9..cec27df41afa41b33de8e9426bdf0efd1e9a251b 100755 GIT binary patch delta 62 zcmeA=C)ssQvY~~sg{g&k3yUTfqw#btE*2w3i|MgkEZ&TU(^qn_$S@jjKgPw<$;4>f R9>B{2#H`x`c-eME0st-N5VHUP delta 62 zcmeA=C)ssQvY~~sg{g&k3yUTfqtSFNE*2w3^Xai%EZ&R;(^qn_$S@jhKgPw<$;4>X R9>B{2#H`x`c-eME0st*i5Uv0K diff --git a/lib/serverFetch.tsx b/lib/serverFetch.tsx index 6d84ab0..020f162 100644 --- a/lib/serverFetch.tsx +++ b/lib/serverFetch.tsx @@ -6,7 +6,6 @@ import { error } from "console"; import { unstable_noStore as noStore } from "next/cache"; import getEnv from "./env-entry"; - export async function GetNezhaData() { noStore(); From 8421cfda56d75f8d8c45ac7dde41980c5bf8dc4d Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:16:25 +0800 Subject: [PATCH 3/9] fix: docker build --- .github/workflows/Deploy.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Deploy.yml b/.github/workflows/Deploy.yml index 16d7fc5..2bed758 100644 --- a/.github/workflows/Deploy.yml +++ b/.github/workflows/Deploy.yml @@ -13,6 +13,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub uses: docker/login-action@v3 with: @@ -38,7 +44,7 @@ jobs: type=ref,event=tag - name: Build and push Docker image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm64 From e698ebc51047faef6f5b785cdc97b6749e36b1ef Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:22:36 +0800 Subject: [PATCH 4/9] fix: bun install --- Dockerfile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 336b824..82ae9b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,10 +4,20 @@ FROM base AS deps RUN apk add --no-cache libc6-compat WORKDIR /app -RUN apk --no-cache add ca-certificates wget -RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk -RUN apk add --no-cache --force-overwrite glibc-2.28-r0.apk +# Install glibc to run Bun +RUN if [[ $(uname -m) == "aarch64" ]] ; \ + then \ + # aarch64 + wget https://raw.githubusercontent.com/squishyu/alpine-pkg-glibc-aarch64-bin/master/glibc-2.26-r1.apk ; \ + apk add --no-cache --allow-untrusted --force-overwrite glibc-2.26-r1.apk ; \ + rm glibc-2.26-r1.apk ; \ + else \ + # x86_64 + wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk ; \ + wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub ; \ + apk add --no-cache --force-overwrite glibc-2.28-r0.apk ; \ + rm glibc-2.28-r0.apk ; \ + fi COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* bun.lockb* ./ RUN \ From 925aa8d20acdf4f520eb1acbec9916accd65b2cb Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:26:19 +0800 Subject: [PATCH 5/9] fix: node version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 82ae9b0..d6e0913 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:21-alpine AS base +FROM node:18-alpine AS base FROM base AS deps RUN apk add --no-cache libc6-compat From 079931c527723f2d621192291b080fcc6486e16b Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:30:25 +0800 Subject: [PATCH 6/9] fix: only bun --- Dockerfile | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index d6e0913..23f49ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,14 +19,8 @@ RUN if [[ $(uname -m) == "aarch64" ]] ; \ rm glibc-2.28-r0.apk ; \ fi -COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* bun.lockb* ./ -RUN \ - if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ - elif [ -f package-lock.json ]; then npm ci; \ - elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \ - elif [ -f bun.lockb ]; then npm install -g bun && bun install; \ - else echo "Lockfile not found." && exit 1; \ - fi +COPY bun.lockb* ./ +RUN npm install -g bun && bun install FROM base AS builder From 669652b36baf815efb2dab363eef311fe5fb7ece Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:32:45 +0800 Subject: [PATCH 7/9] fix: bun install --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 23f49ef..d7ea1cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN if [[ $(uname -m) == "aarch64" ]] ; \ rm glibc-2.28-r0.apk ; \ fi -COPY bun.lockb* ./ +COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* bun.lockb* ./ RUN npm install -g bun && bun install From 4d8f69e546a8b217639f531b923c5e011e6198ee Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:38:34 +0800 Subject: [PATCH 8/9] fix: use oven/bun --- Dockerfile | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index d7ea1cc..8e8e7c2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,11 @@ -FROM node:18-alpine AS base +FROM oven/bun:1 AS base FROM base AS deps -RUN apk add --no-cache libc6-compat WORKDIR /app -# Install glibc to run Bun -RUN if [[ $(uname -m) == "aarch64" ]] ; \ - then \ - # aarch64 - wget https://raw.githubusercontent.com/squishyu/alpine-pkg-glibc-aarch64-bin/master/glibc-2.26-r1.apk ; \ - apk add --no-cache --allow-untrusted --force-overwrite glibc-2.26-r1.apk ; \ - rm glibc-2.26-r1.apk ; \ - else \ - # x86_64 - wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk ; \ - wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub ; \ - apk add --no-cache --force-overwrite glibc-2.28-r0.apk ; \ - rm glibc-2.28-r0.apk ; \ - fi COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* bun.lockb* ./ -RUN npm install -g bun && bun install +RUN bun install FROM base AS builder From 75208a7f83427aef2ab9cc05f056f68954711c98 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 23 Sep 2024 13:40:26 +0800 Subject: [PATCH 9/9] fix: docker build --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8e8e7c2..69a3cf0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN yarn build +RUN bun run build FROM base AS runner