FROM node:14.18.3-buster-slim AS build RUN set -eux \ && apt-get update \ && apt-get install -y --no-install-recommends fontconfig g++ build-essential git make python ca-certificates curl gnupg \ && apt-get clean RUN curl https://install.meteor.com | /bin/sh ENV METEOR_ALLOW_SUPERUSER=true ARG VERSION RUN git clone --depth 1 --branch $VERSION https://github.com/RocketChat/Rocket.Chat.git /app WORKDIR /app RUN meteor --version RUN YARN_CHECKSUM_BEHAVIOR=update yarn COPY no-upgrade.patch no-upgrade.patch RUN git apply no-upgrade.patch COPY fix-room-avatar.patch fix-room-avatar.patch RUN git apply fix-room-avatar.patch RUN yarn lint RUN yarn turbo run translation-check RUN yarn turbo run typecheck RUN GENERATE_SOURCEMAP=false TOOL_NODE_FLAGS="--max_old_space_size=8192" yarn build:ci -- --directory /build FROM node:14.18.3-buster-slim as patched RUN groupadd -r rocketchat \ && useradd -r -g rocketchat rocketchat \ && mkdir -p /app/uploads VOLUME /app/uploads COPY --from=build /build/bundle /app/bundle RUN apt-get update \ && apt-get install -y --no-install-recommends fontconfig \ && apt-mark showmanual > /tmp/aptMark \ && apt-get install -y --no-install-recommends g++ make python ca-certificates curl gnupg \ && rm -rf /var/lib/apt/lists/* \ && cd /app/bundle/programs/server \ && npm install \ && apt-mark auto '.*' > /dev/null \ && apt-mark manual $(cat /tmp/aptMark) > /dev/null \ && find /usr/local -type f -executable -exec ldd '{}' ';' \ | awk '/=>/ { print $(NF-1) }' \ | sort -u \ | xargs -r dpkg-query --search \ | cut -d: -f1 \ | sort -u \ | xargs -r apt-mark manual \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ && rm /tmp/aptMark \ && npm cache clear --force \ && chown -R rocketchat:rocketchat /app USER rocketchat WORKDIR /app/bundle ENV DEPLOY_METHOD=docker-libresh \ HOME=/tmp \ PORT=3000 \ ROOT_URL=http://localhost:3000 \ Accounts_AvatarStorePath=/app/uploads EXPOSE 3000 CMD ["node", "main.js"] FROM patched COPY ./img/favicon.ico /app/bundle/programs/web.browser/app/favicon.ico COPY ./img/android-chrome-192x192.png /app/bundle/programs/web.browser/app/images/logo/android-chrome-192x192.png COPY ./img/android-chrome-512x512.png /app/bundle/programs/web.browser/app/images/logo/android-chrome-512x512.png COPY ./img/apple-touch-icon.png /app/bundle/programs/web.browser/app/images/logo/apple-touch-icon.png COPY ./img/favicon-16x16.png /app/bundle/programs/web.browser/app/images/logo/favicon-16x16.png COPY ./img/favicon-32x32.png /app/bundle/programs/web.browser/app/images/logo/favicon-32x32.png COPY ./img/icon.svg /app/bundle/programs/web.browser/app/images/logo/icon.svg COPY ./img/logo.png /app/bundle/programs/web.browser/app/images/logo/logo.png COPY ./img/logo.png /app/bundle/programs/web.browser/app/images/logo/1024x1024.png COPY ./img/logo.svg /app/bundle/programs/web.browser/app/images/logo/logo.svg #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/apple-touch-icon-precomposed.png #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/mstile-144x144.png #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/mstile-150x150.png #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/mstile-70x70.png #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/mstile-310x150.png #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/mstile-310x310.png #COPY ./img/ /app/bundle/programs/web.browser/app/images/logo/safari-pinned-tab.svg COPY ./css/indie.css /app/bundle/indie.css RUN cd /app/bundle/programs/web.browser \ && css=`ls /app/bundle/programs/web.browser/*.css` \ && chmod +w $css \ && cat /app/bundle/indie.css >> $css \ && chmod -w $css \ && rm /app/bundle/indie.css