Skip to content
Dockerfile 3.8 KiB
Newer Older
Hugo Renard's avatar
Hugo Renard committed
FROM node:14.18.3-buster-slim AS build
Hugo Renard's avatar
Hugo Renard committed

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

Pierre Ozoux's avatar
Pierre Ozoux committed
ARG VERSION
Hugo Renard's avatar
Hugo Renard committed
RUN git clone --depth 1 --branch $VERSION https://github.com/RocketChat/Rocket.Chat.git /app

WORKDIR /app
RUN meteor --version
Hugo Renard's avatar
Hugo Renard committed
RUN YARN_CHECKSUM_BEHAVIOR=update yarn
Hugo Renard's avatar
Hugo Renard committed

COPY no-upgrade.patch no-upgrade.patch
RUN git apply no-upgrade.patch
Hugo Renard's avatar
Hugo Renard committed
COPY fix-room-avatar.patch fix-room-avatar.patch
RUN git apply fix-room-avatar.patch
Hugo Renard's avatar
Hugo Renard committed

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=4096" yarn build:ci -- --directory /build
Hugo Renard's avatar
Hugo Renard committed


Hugo Renard's avatar
Hugo Renard committed
FROM node:14.18.3-buster-slim as patched
Hugo Renard's avatar
Hugo Renard committed

RUN groupadd -r rocketchat \
  && useradd -r -g rocketchat rocketchat \
  && mkdir -p /app/uploads

VOLUME /app/uploads

Hugo Renard's avatar
Hugo Renard committed
COPY --from=build /build/bundle /app/bundle

Hugo Renard's avatar
Hugo Renard committed
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 \
Hugo Renard's avatar
Hugo Renard committed
  && rm -rf /var/lib/apt/lists/* \
  && cd /app/bundle/programs/server \
Hugo Renard's avatar
Hugo Renard committed
  && 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
Pierre Ozoux's avatar
Pierre Ozoux committed

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