38 lines
665 B
Docker
38 lines
665 B
Docker
ARG NODE_VERSION=node:16.14.2-alpine
|
|
# 1 - INSTALL
|
|
FROM $NODE_VERSION AS install
|
|
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
|
|
COPY package.json .
|
|
COPY package-lock.json .
|
|
COPY config.sh .
|
|
RUN npm ci
|
|
|
|
# 2 - CONFIGURE
|
|
FROM install AS configure
|
|
|
|
COPY . .
|
|
COPY config.sh .
|
|
|
|
# avoid conflict with nuxt build:
|
|
RUN sed -i "s|PORT=.*||g" config.sh
|
|
|
|
RUN npm run build
|
|
|
|
# 3 - PRODUCTION
|
|
FROM $NODE_VERSION AS production
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=install /app/node_modules /app/node_modules
|
|
COPY --from=configure /app /app
|
|
|
|
ENV NUXT_HOST=0.0.0.0
|
|
ARG NUXT_APP_VERSION
|
|
ENV NUXT_APP_VERSION=${NUXT_APP_VERSION}
|
|
ENV NODE_ENV=production
|
|
|
|
CMD source config.sh && node .output/server/index.mjs
|