diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index b512c09..0000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index d613872..cade2b9 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -16,6 +16,7 @@ jobs: cat < .env DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN }} DISCORD_CLIENT_ID=${{ secrets.DISCORD_CLIENT_ID }} + DISCORD_PREFIX=f? EOF - name: Stop and remove old containers diff --git a/Dockerfile b/Dockerfile index fd4466d..297ea71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,26 @@ +# 1. Base image FROM node:20-alpine AS base +WORKDIR /app +ENV NODE_ENV=production +# 2. Install dependencies FROM base AS deps RUN apk add --no-cache libc6-compat -WORKDIR /app -COPY package*.json package-lock*.json ./ +COPY package*.json ./ RUN npm ci +# 3. Build the app +FROM base AS build +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN npm run build + +# 4. Final runtime image FROM base AS runner WORKDIR /app COPY --from=deps /app/node_modules ./node_modules -COPY --from=deps /app/package.json ./package.json -COPY package.json package-lock.json tsconfig.json .env ./ -COPY src ./src +COPY --from=build /app/dist ./dist +COPY package.json .env ./ CMD ["npm", "run", "start"]