From fb8617bcf44eee9bebee890d6db767ade72b1966 Mon Sep 17 00:00:00 2001 From: yusing Date: Mon, 7 Oct 2024 03:39:49 +0800 Subject: [PATCH] updated dockerfile and compose build production build instead of dev GitHub Action support --- .dockerignore | 50 ++++++++++++ .github/workflows/docker-image.yml | 124 +++++++++++++++++++++++++++++ Dockerfile | 40 ++++++++-- bun.lockb | Bin 288395 -> 291400 bytes docker-compose.yaml => compose.yml | 20 ++--- next.config.mjs | 6 +- package.json | 2 +- 7 files changed, 222 insertions(+), 20 deletions(-) create mode 100644 .dockerignore create mode 100644 .github/workflows/docker-image.yml rename docker-compose.yaml => compose.yml (71%) diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..06d88313 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,50 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# unnecessary files +/.vscode +/.github + +.git +.gitignore +.env.local.example + +Dockerfile +compose.yml +searxng-* +start.sh +README.md diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 00000000..e7e2136f --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,124 @@ +name: Docker Image + +on: + push: + tags: ["v*"] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build: + name: Build multi-platform Docker image + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + id-token: write + attestations: write + + strategy: + fail-fast: false + matrix: + platform: + - linux/amd64 + - linux/arm64 + steps: + - name: Prepare + run: | + platform=${{ matrix.platform }} + echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push by digest + id: build + uses: docker/build-push-action@v6 + with: + platforms: ${{ matrix.platform }} + labels: ${{ steps.meta.outputs.labels }} + outputs: type=image,name=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v1 + with: + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} + subject-digest: ${{ steps.build.outputs.digest }} + push-to-registry: true + + - name: Export digest + run: | + mkdir -p /tmp/digests + digest="${{ steps.build.outputs.digest }}" + touch "/tmp/digests/${digest#sha256:}" + + - name: Upload digest + uses: actions/upload-artifact@v4 + with: + name: digests-${{ env.PLATFORM_PAIR }} + path: /tmp/digests/* + if-no-files-found: error + retention-days: 1 + merge: + runs-on: ubuntu-latest + needs: + - build + permissions: + contents: read + packages: write + id-token: write + steps: + - name: Download digests + uses: actions/download-artifact@v4 + with: + path: /tmp/digests + pattern: digests-* + merge-multiple: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create manifest list and push + id: push + working-directory: /tmp/digests + run: | + docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + $(printf '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *) + + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} diff --git a/Dockerfile b/Dockerfile index 0eedf1b1..f7305768 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,41 @@ +FROM oven/bun:1 AS base +WORKDIR /app -FROM oven/bun:1.1.3-alpine - -RUN apk add --no-cache nodejs npm git - +# build +FROM base AS builder WORKDIR /app COPY package.json bun.lockb ./ -RUN bun install +RUN bun install --frozen-lockfile COPY . . +# in production build, skip validation of typescript +RUN sed -i 's/nextConfig = {/nextConfig = { typescript: { ignoreBuildErrors: true }, eslint: { ignoreDuringBuilds: true },/' next.config.mjs +ENV NEXT_TELEMETRY_DISABLED=1 +ENV NODE_ENV=production +RUN bun run build + +# Production image, copy all the files and run next +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 + +COPY --from=builder /app/public ./public + +# Set the correct permission for prerender cache +RUN mkdir .next && chown bun:bun .next + +# Automatically leverage output traces to reduce image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --from=builder --chown=bun:bun /app/.next/standalone ./ +COPY --from=builder --chown=bun:bun /app/.next/static ./.next/static + +USER bun + +EXPOSE 3000 -RUN bun next telemetry disable +ENV PORT=3000 -CMD ["bun", "dev", "-H", "0.0.0.0"] +CMD ["bun", "run", "server.js"] diff --git a/bun.lockb b/bun.lockb index 89e23239cb41031d6360eb0bcf5a273da8c41eb5..d51c8d0bbeffcaa4decb796fb15c14b7e78eb439 100755 GIT binary patch delta 70000 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 PvAh5&m6j4Jnd<%@P}??m delta 67881 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μ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 LRIb@qGSU4%pdEfN diff --git a/docker-compose.yaml b/compose.yml similarity index 71% rename from docker-compose.yaml rename to compose.yml index a36c45a6..ed5e6b3c 100644 --- a/docker-compose.yaml +++ b/compose.yml @@ -3,23 +3,25 @@ name: morphic-stack services: morphic: - build: - context: . # The build context is the current directory - dockerfile: Dockerfile - command: bun dev # Use `bun dev -H 0.0.0.0` to listen on all interfaces + container_name: morphic + image: ghcr.io/miurla/morphic:latest env_file: .env.local # Load environment variables ports: - '3000:3000' # Maps port 3000 on the host to port 3000 in the container. + # Supports for api urls with self-signed certificates + # + # volumes: + # - ./ca.pem:/certs/ca.crt + # environment: + # - NODE_EXTRA_CA_CERTS=/certs/ca.crt depends_on: - redis - searxng redis: image: redis:alpine - ports: - - '6379:6379' volumes: - - redis_data:/data + - redis:/data command: redis-server --appendonly yes searxng: @@ -30,8 +32,6 @@ services: volumes: - ./searxng-limiter.toml:/etc/searxng/limiter.toml - ./searxng-settings.yml:/etc/searxng/settings.yml - - searxng_data:/data volumes: - redis_data: - searxng_data: + redis: diff --git a/next.config.mjs b/next.config.mjs index 4678774e..089b7c0c 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,4 +1,6 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {}; +const nextConfig = { + output: 'standalone' +} -export default nextConfig; +export default nextConfig diff --git a/package.json b/package.json index bf2f9426..68417260 100644 --- a/package.json +++ b/package.json @@ -67,4 +67,4 @@ "tailwindcss": "^3.4.1", "typescript": "^5" } -} +} \ No newline at end of file