# 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" ]