discourse_docker/image/discourse_test/Dockerfile

47 lines
1.6 KiB
Docker

ARG from_tag=build
FROM discourse/base:$from_tag AS base
ENV RAILS_ENV test
WORKDIR /var/www/discourse
ENV LANG en_US.UTF-8
# configure Git to suppress warnings
RUN sudo -E -u discourse -H git config --global user.email "you@example.com" &&\
sudo -E -u discourse -H git config --global user.name "Your Name"
RUN chown -R discourse . &&\
chown -R discourse /var/run/postgresql &&\
bundle config unset deployment &&\
bundle config unset without
FROM base AS with_browsers
ENV TESTEM_DEFAULT_BROWSER Chrome
ADD install-chrome /tmp/install-chrome
RUN /tmp/install-chrome &&\
apt update &&\
apt install -y libgconf-2-4 libxss1 firefox-esr &&\
cd /tmp && wget -q "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" -O firefox.tar.xz &&\
tar xJvf firefox.tar.xz && mv /tmp/firefox /opt/firefox-evergreen &&\
apt clean &&\
rm /tmp/firefox.tar.xz
FROM with_browsers AS release
RUN cd /var/www/discourse &&\
sudo -u discourse bundle install --jobs $(($(nproc) - 1)) &&\
sudo -E -u discourse -H /bin/bash -c 'CI=1 pnpm install'
RUN cd /var/www/discourse && sudo -E -u discourse -H bundle exec rake plugin:install_all_official &&\
LOAD_PLUGINS=1 sudo -E -u discourse -H bundle exec rake plugin:install_all_gems &&\
sudo -E -u discourse -H bundle exec ruby script/install_minio_binaries.rb
RUN cd /var/www/discourse && \
pnpm playwright install ffmpeg
RUN cd /var/www/discourse && \
sudo -E -u discourse -H pnpm playwright install --no-shell chromium
ENTRYPOINT ["sudo", "-E", "-u", "discourse", "-H", "ruby", "script/docker_test.rb"]