mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-24 12:26:40 +07:00
51 lines
No EOL
1.6 KiB
Docker
51 lines
No EOL
1.6 KiB
Docker
# As written here:
|
|
# https://dev.to/leduc1901/reduce-docker-image-size-for-your-nextjs-app-5911
|
|
|
|
# Base ───────────────────────────────────────────────────────────────────────
|
|
FROM node:14-alpine as base
|
|
|
|
WORKDIR /opt/app
|
|
|
|
ENV PATH /opt/app/node_modules/.bin:$PATH
|
|
|
|
# Build ──────────────────────────────────────────────────────────────────────
|
|
FROM base as builder
|
|
|
|
ARG NEXT_PUBLIC_API_HOST
|
|
ARG NEXT_PUBLIC_REMOTE_CURRENT
|
|
ARG NEXT_PUBLIC_PUBLIC_HOST
|
|
ARG NEXT_PUBLIC_BOT_USERNAME
|
|
|
|
ENV NEXT_PUBLIC_API_HOST $NEXT_PUBLIC_API_HOST
|
|
ENV NEXT_PUBLIC_REMOTE_CURRENT $NEXT_PUBLIC_REMOTE_CURRENT
|
|
ENV NEXT_PUBLIC_PUBLIC_HOST $NEXT_PUBLIC_PUBLIC_HOST
|
|
ENV NEXT_PUBLIC_BOT_USERNAME $NEXT_PUBLIC_BOT_USERNAME
|
|
|
|
# ENV NEXT_PUBLIC_API_HOST https://vault48.org/api/
|
|
# ENV NEXT_PUBLIC_REMOTE_CURRENT https://vault48.org/static/
|
|
# ENV NEXT_PUBLIC_PUBLIC_HOST https://vault48.org/
|
|
# ENV NEXT_PUBLIC_BOT_USERNAME vault48bot
|
|
|
|
COPY package.json .
|
|
COPY yarn.lock .
|
|
|
|
RUN true \
|
|
&& yarn install --frozen-lockfile\
|
|
&& true
|
|
|
|
COPY . /opt/app
|
|
|
|
# pkg packs nodejs with given script, so we don't need it in next section
|
|
RUN yarn next build
|
|
|
|
FROM node:14-alpine as runner
|
|
|
|
WORKDIR /opt/app
|
|
|
|
COPY --from=builder /opt/app/public ./public
|
|
COPY --from=builder /opt/app/.next/standalone .
|
|
COPY --from=builder /opt/app/.next/static ./.next/static
|
|
|
|
EXPOSE 3000
|
|
|
|
ENTRYPOINT ["node", "server.js"] |