[READ-ONLY] Mirror of https://github.com/danielroe/web-dev-challenge.
quickrecipes.co
1.0 kB
47 lines
1# syntax = docker/dockerfile:1
2
3# Adjust NODE_VERSION as desired
4ARG NODE_VERSION=18.20.5
5FROM node:${NODE_VERSION}-slim AS base
6
7LABEL fly_launch_runtime="Nuxt"
8
9# Nuxt app lives here
10WORKDIR /app
11
12# Set production environment
13ENV NODE_ENV="production"
14
15# Install pnpm
16ARG PNPM_VERSION=9.15.5
17RUN npm install -g pnpm@$PNPM_VERSION
18
19
20# Throw-away build stage to reduce size of final image
21FROM base AS build
22
23# Install packages needed to build node modules
24RUN apt-get update -qq && \
25 apt-get install --no-install-recommends -y build-essential node-gyp pkg-config python-is-python3
26
27# Install node modules
28COPY package.json pnpm-lock.yaml ./
29RUN pnpm install --frozen-lockfile --prod=false
30
31# Copy application code
32COPY . .
33
34# Build application
35RUN pnpm run build
36
37
38# Final stage for app image
39FROM base
40
41# Copy built application
42COPY --from=build /app/.output /app/.output
43
44# Start the server by default, this can be overwritten at runtime
45EXPOSE 3000
46ENV HOST=0
47CMD [ "node", ".output/server/index.mjs" ]