From ffa8b73f4d7531fb59bdb9c0d8d10af741bacb68 Mon Sep 17 00:00:00 2001 From: achmad Date: Thu, 28 May 2026 22:34:30 +0700 Subject: [PATCH] ci: Docker build and Gitea Actions deploy workflow --- .dockerignore | 5 +++++ .gitea/workflows/deploy.yml | 17 +++++++++++++++++ Dockerfile | 15 +++++++++++++++ next.config.mjs | 1 + 4 files changed, 38 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitea/workflows/deploy.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f8b0e7f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +node_modules +.next +.env.local +.git +docs diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..fbbb320 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,17 @@ +name: Deploy + +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: self-hosted + steps: + - uses: actions/checkout@v3 + + - name: Build and redeploy + run: | + docker compose build kotobane + docker compose up -d --no-deps kotobane diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8139d7c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:20-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build + +FROM node:20-alpine AS runner +WORKDIR /app +ENV NODE_ENV=production +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static +COPY --from=builder /app/public ./public +EXPOSE 3000 +CMD ["node", "server.js"] diff --git a/next.config.mjs b/next.config.mjs index bb0cfec..a280468 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,5 +1,6 @@ /** @type {import('next').NextConfig} */ const nextConfig = { + output: 'standalone', images: { remotePatterns: [ {