Spaces:
Build error
Build error
# base image | |
FROM node:20.11-alpine3.19 AS base | |
LABEL maintainer="[email protected]" | |
# if you located in China, you can use aliyun mirror to speed up | |
# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories | |
RUN apk add --no-cache tzdata | |
# install packages | |
FROM base AS packages | |
WORKDIR /app/web | |
COPY package.json . | |
COPY yarn.lock . | |
# if you located in China, you can use taobao registry to speed up | |
# RUN yarn install --frozen-lockfile --registry https://registry.npmmirror.com/ | |
RUN yarn install --frozen-lockfile | |
# build resources | |
FROM base AS builder | |
WORKDIR /app/web | |
COPY --from=packages /app/web/ . | |
COPY . . | |
RUN yarn build | |
# production stage | |
FROM base AS production | |
ENV NODE_ENV=production | |
ENV EDITION=SELF_HOSTED | |
ENV DEPLOY_ENV=PRODUCTION | |
ENV CONSOLE_API_URL=http://127.0.0.1:5001 | |
ENV APP_API_URL=http://127.0.0.1:5001 | |
ENV PORT=3000 | |
ENV NEXT_TELEMETRY_DISABLED=1 | |
# set timezone | |
ENV TZ=UTC | |
RUN ln -s /usr/share/zoneinfo/${TZ} /etc/localtime \ | |
&& echo ${TZ} > /etc/timezone | |
WORKDIR /app/web | |
COPY --from=builder /app/web/public ./public | |
COPY --from=builder /app/web/.next/standalone ./ | |
COPY --from=builder /app/web/.next/static ./.next/static | |
COPY docker/pm2.json ./pm2.json | |
COPY docker/entrypoint.sh ./entrypoint.sh | |
# global runtime packages | |
RUN yarn global add pm2 \ | |
&& yarn cache clean \ | |
&& mkdir /.pm2 \ | |
&& chown -R 1001:0 /.pm2 /app/web \ | |
&& chmod -R g=u /.pm2 /app/web | |
ARG COMMIT_SHA | |
ENV COMMIT_SHA=${COMMIT_SHA} | |
USER 1001 | |
EXPOSE 3000 | |
ENTRYPOINT ["/bin/sh", "./entrypoint.sh"] | |