masto-fe-standalone/Dockerfile

34 lines
926 B
Docker

### BUILDER IMAGE ###
FROM node:lts-alpine AS builder
# Prepare the build directory, copy
# relevant source + config files over.
WORKDIR /build
COPY app /build/app
COPY config /build/config
COPY public /build/public
COPY \
.browserslistrc \
babel.config.js \
jsconfig.json \
package.json \
tsconfig.json \
yarn.lock \
/build/
# Create a production build of the frontend.
RUN yarn && yarn build:production
### RUNTIME IMAGE ###
FROM nginx:1.27.3-alpine AS runtime
# Copy bigger nested stuff.
COPY --from=builder --chown=nginx /build/public/packs/js/flavours/glitch /usr/share/nginx/html/packs/js/flavours/glitch
COPY --from=builder --chown=nginx /build/public/packs/js/flavours/vanilla /usr/share/nginx/html/packs/js/flavours/vanilla
# Copy remaining files.
COPY --from=builder --chown=nginx /build/public /usr/share/nginx/html/
# Set up nginx.
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80