diff options
Diffstat (limited to 'frontend')
| -rw-r--r-- | frontend/Dockerfile | 27 | ||||
| -rw-r--r-- | frontend/package.json | 3 | ||||
| -rw-r--r-- | frontend/shared-types.ts | 3 |
3 files changed, 32 insertions, 1 deletions
diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..2a22355 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,27 @@ +# Install dependencies only when needed +FROM node:alpine AS deps +# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. +RUN apk add --no-cache libc6-compat +WORKDIR /app +COPY package.json package-lock.json ./ +RUN npm ci --only-prod + +# Rebuild the source code only when needed +FROM node:alpine AS builder + +ENV NODE_ENV production +ENV NEXT_TELEMETRY_DISABLED 1 +ARG NEXT_PUBLIC_BACKEND_URL + +WORKDIR /app +COPY . . +COPY --from=deps /app/node_modules ./node_modules +RUN printenv > .env.local +RUN npm run build && npm run export + +# Production image, copy all the files and run next +FROM sebp/lighttpd:latest AS runner + +WORKDIR /var/www/localhost/htdocs + +COPY --from=builder /app/out ./ diff --git a/frontend/package.json b/frontend/package.json index bb2e5b5..48fa29f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,8 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "export": "next export" }, "dependencies": { "next": "11.0.1", diff --git a/frontend/shared-types.ts b/frontend/shared-types.ts new file mode 100644 index 0000000..51f3281 --- /dev/null +++ b/frontend/shared-types.ts @@ -0,0 +1,3 @@ +export interface ValueRecord { + value: number; +} |
