You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

36 lines
1.2 KiB

# Alpine results in segfaults, will stick with slim for now...
FROM node:14-slim AS base
WORKDIR /app
RUN mkdir /var/autoplex && chown node:node -R /var/autoplex
RUN apt-get update
RUN apt-get full-upgrade -y
RUN apt-get install -y libasound2 iputils-ping curl gnupg1 apt-transport-https dirmngr
# Speedtest utilities
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61 && \
echo "deb https://ookla.bintray.com/debian generic main" | tee /etc/apt/sources.list.d/speedtest.list && \
apt-get update && \
apt-get install speedtest
RUN apt-get autoremove --purge -y
RUN rm -rf /var/lib/apt/lists/*
# An image containing necessary components for building
FROM base AS builder
COPY package.json yarn.lock tsconfig.json ./
RUN rm -rf node_modules && yarn install --frozen-lockfile
COPY src src
COPY patches patches
# An image to build the app
FROM builder AS build
RUN yarn run build
# An image containing the built app and production dependencies
FROM base AS prod
COPY --from=build /app/build ./build
COPY patches patches
COPY package.json yarn.lock ./
RUN rm -rf node_modules && yarn install --production --frozen-lockfile
CMD [ "yarn", "run", "start" ]