# FROM node:14-alpine AS base FROM docker-mirror.liara.ir/library/node:14-alpine AS base RUN ALPINE_VERSION=$(cat /etc/alpine-release | cut -d'.' -f1-2) && \ echo "https://linux-mirror.liara.ir/repository/alpine/v${ALPINE_VERSION}/main" > /etc/apk/repositories && \ echo "https://linux-mirror.liara.ir/repository/alpine/v${ALPINE_VERSION}/community" >> /etc/apk/repositories # ENV NPM_CONFIG_REGISTRY=https://package-mirror.liara.ir/repository/npm/ \ # NUXT_TELEMETRY_DISABLED=1 FROM base AS deps WORKDIR /app COPY package.json package-lock.json ./ # Install devDependencies (sass-loader, node-sass) required for `nuxt build` ENV NODE_ENV=development RUN npm ci FROM base AS prod-deps WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci --omit=dev FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . # NODE_ENV=production must not be set during build — webpack needs devDependencies RUN npm run build FROM base AS runner WORKDIR /app ENV NODE_ENV=production \ PORT=6096 \ HOSTNAME=0.0.0.0 RUN addgroup -S appgroup && adduser -S appuser -G appgroup COPY --from=prod-deps --chown=appuser:appgroup /app/node_modules ./node_modules COPY --from=builder --chown=appuser:appgroup /app/.nuxt ./.nuxt COPY --from=builder --chown=appuser:appgroup /app/static ./static COPY --from=builder --chown=appuser:appgroup /app/package.json ./package.json COPY --from=builder --chown=appuser:appgroup /app/nuxt.config.js ./nuxt.config.js COPY --from=builder --chown=appuser:appgroup /app/api ./api COPY --from=builder --chown=appuser:appgroup /app/store ./store COPY --from=builder --chown=appuser:appgroup /app/middleware ./middleware USER appuser EXPOSE 6096 CMD ["node_modules/.bin/nuxt", "start"]