Switch webapp build to Dockerfile and remove Nixpacks
This commit is contained in:
9
.dockerignore
Normal file
9
.dockerignore
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
.git
|
||||||
|
.gitea
|
||||||
|
.nuxt
|
||||||
|
.output
|
||||||
|
node_modules
|
||||||
|
*.log
|
||||||
|
.DS_Store
|
||||||
|
coverage
|
||||||
|
dist
|
||||||
21
Dockerfile
21
Dockerfile
@@ -1,24 +1,27 @@
|
|||||||
FROM node:22-slim AS build
|
FROM node:22-slim AS base
|
||||||
|
|
||||||
ENV PNPM_HOME=/pnpm
|
ENV PNPM_HOME=/pnpm
|
||||||
ENV PATH=$PNPM_HOME:$PATH
|
ENV PATH=$PNPM_HOME:$PATH
|
||||||
ENV NODE_OPTIONS=--max-old-space-size=2048
|
|
||||||
ENV NUXT_SOURCEMAP=false
|
|
||||||
ENV NUXT_MINIFY=false
|
|
||||||
ENV SENTRY_ENABLED=false
|
|
||||||
ENV NUXT_TELEMETRY_DISABLED=1
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile --config.confirmModulesPurge=false
|
||||||
|
|
||||||
|
FROM base AS build
|
||||||
|
|
||||||
|
ENV NODE_OPTIONS=--max-old-space-size=2048
|
||||||
|
ENV NUXT_SOURCEMAP=false
|
||||||
|
ENV NUXT_MINIFY=false
|
||||||
|
ENV SENTRY_ENABLED=false
|
||||||
|
ENV NUXT_TELEMETRY_DISABLED=1
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN pnpm run build
|
RUN pnpm run build && pnpm prune --prod
|
||||||
|
|
||||||
FROM node:22-slim
|
FROM node:22-slim AS runtime
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
providers = []
|
|
||||||
buildImage = 'ghcr.io/railwayapp/nixpacks:ubuntu-1745885067'
|
|
||||||
|
|
||||||
[variables]
|
|
||||||
CI = 'true'
|
|
||||||
NIXPACKS_METADATA = 'node'
|
|
||||||
NODE_ENV = 'production'
|
|
||||||
[phases.build]
|
|
||||||
dependsOn = ['install']
|
|
||||||
cmds = ['node scripts/load-secrets.mjs && source .env.infisical && pnpm run build']
|
|
||||||
cacheDirectories = ['node_modules/.cache']
|
|
||||||
|
|
||||||
[phases.install]
|
|
||||||
dependsOn = ['setup']
|
|
||||||
cmds = ['pnpm install --frozen-lockfile --config.confirmModulesPurge=false']
|
|
||||||
cacheDirectories = ['/root/.local/share/pnpm/store']
|
|
||||||
paths = ['/app/node_modules/.bin']
|
|
||||||
|
|
||||||
[phases.setup]
|
|
||||||
nixPkgs = ['nodejs_22', 'pnpm']
|
|
||||||
nixpkgsArchive = '23f9169c4ccce521379e602cc82ed873a1f1b52b'
|
|
||||||
|
|
||||||
[start]
|
|
||||||
cmd = 'node scripts/load-secrets.mjs && source .env.infisical && node --import ./.output/server/sentry.server.config.mjs .output/server/index.mjs'
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user