Newer
Older
FROM node:14.18.3-bullseye-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
RUN git clone --depth 1 --branch $VERSION https://github.com/RocketChat/Rocket.Chat.git /app
WORKDIR /app
RUN meteor --version
RUN yarn
COPY no-upgrade.patch no-upgrade.patch
RUN git apply no-upgrade.patch
RUN yarn lint
RUN yarn turbo run translation-check
RUN yarn turbo run typecheck
RUN yarn build:ci -- --directory /build
FROM node:14.18.3-bullseye-slim as patched
RUN groupadd -r rocketchat \
&& useradd -r -g rocketchat rocketchat \
&& mkdir -p /app/uploads
VOLUME /app/uploads
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