# protobuf build FROM node:14.18.2-buster-slim@sha256:20bedf0c09de887379e59a41c04284974f5fb529cf0e13aab613473ce298da3d as messages WORKDIR /usr/src COPY messages . RUN yarn install && yarn ts-proto # webpack build FROM node:14.18.2-buster-slim@sha256:20bedf0c09de887379e59a41c04284974f5fb529cf0e13aab613473ce298da3d as builder WORKDIR /usr/src COPY front/yarn.lock front/package.json ./ RUN yarn install --ignore-engines COPY front . COPY --from=messages /usr/src/ts-proto-generated/protos src/Messages/ts-proto-generated RUN sed -i 's/import { Observable } from "rxjs";/import type { Observable } from "rxjs";/g' src/Messages/ts-proto-generated/messages.ts COPY --from=messages /usr/src/JsonMessages src/Messages/JsonMessages RUN DEBIAN_FRONTEND=noninteractive apt-get update \ && apt-get install -y \ gettext-base RUN rm dist/iframe.html RUN yarn run typesafe-i18n RUN yarn run build RUN ./templater.sh # passing arguments as environment ARG DEBUG_MODE ARG JITSI_URL ARG JITSI_PRIVATE_MODE ARG PUSHER_URL ARG ICON_URL ARG ADMIN_URL ARG STUN_SERVER ARG TURN_SERVER ARG TURN_USER ARG TURN_PASSWORD ARG MAX_PER_GROUP ARG MAX_USERNAME_LENGTH ARG PROFILE_URL ARG START_ROOM_URL ARG DISABLE_NOTIFICATIONS ARG SKIP_RENDER_OPTIMIZATIONS ARG OPID_LOGIN_SCREEN_PROVIDER ENV DEBUG_MODE=$DEBUG_MODE ENV JITSI_URL=$JITSI_URL ENV JITSI_PRIVATE_MODE=$JITSI_PRIVATE_MODE ENV PUSHER_URL=$PUSHER_URL ENV ICON_URL=$ICON_URL ENV ADMIN_URL=$ADMIN_URL ENV STUN_SERVER=$STUN_SERVER ENV TURN_SERVER=$TURN_SERVER ENV TURN_USER=$TURN_USER ENV TURN_PASSWORD=$TURN_PASSWORD ENV MAX_PER_GROUP=$MAX_PER_GROUP ENV MAX_USERNAME_LENGTH=$MAX_USERNAME_LENGTH ENV PROFILE_URL=$PROFILE_URL ENV START_ROOM_URL=$START_ROOM_URL ENV DISABLE_NOTIFICATIONS=$DISABLE_NOTIFICATIONS ENV SKIP_RENDER_OPTIMIZATIONS=$SKIP_RENDER_OPTIMIZATIONS ENV OPID_LOGIN_SCREEN_PROVIDER=$OPID_LOGIN_SCREEN_PROVIDER RUN envsubst < dist/env-config.template.js > dist/env-config.js # final production image FROM nginx:mainline-alpine COPY front/nginx-vhost.conf /etc/nginx/conf.d/default.conf COPY --from=builder /usr/src/dist /usr/share/nginx/html RUN cat /usr/share/nginx/html/env-config.js