FROM ruby:2.7-buster MAINTAINER operations@openproject.com ENV NODE_VERSION="14.16.0" ENV CHROME_SOURCE_URL=https://dl.google.com/dl/linux/direct/google-chrome-stable_current_amd64.deb ENV USER=dev RUN useradd -d /home/$USER -m $USER -s /bin/bash WORKDIR /home/$USER RUN curl -s https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz | tar xzf - -C /usr/local --strip-components=1 RUN wget --quiet -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - RUN echo "deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list RUN apt-get update -qq && \ DEBIAN_FRONTEND=noninteractive apt-get install -y \ postgresql-9.6 postgresql-client-9.6 time pandoc imagemagick libpq-dev default-jre-headless firefox-esr RUN wget --no-verbose -O /tmp/$(basename $CHROME_SOURCE_URL) $CHROME_SOURCE_URL && \ apt install -y /tmp/$(basename $CHROME_SOURCE_URL) && rm -f /tmp/$(basename $CHROME_SOURCE_URL) ENV CI=true ENV RAILS_ENV=test ENV BUNDLER_VERSION="2.1.4" ENV BUNDLE_WITHOUT="development:production:docker" ENV OPENPROJECT_DISABLE_DEV_ASSET_PROXY=1 ENV CAPYBARA_DYNAMIC_BIND_IP=1 ENV CAPYBARA_DOWNLOADED_FILE_DIR=/tmp # disable deprecations and other warnings in output ENV RUBYOPT="-W0" ENV DATABASE_URL=postgres://app:p4ssw0rd@127.0.0.1/app RUN gem install bundler --version "$BUNDLER_VERSION" --no-document COPY ./entrypoint.sh /usr/sbin/entrypoint.sh VOLUME [ "/usr/local/bundle", "/home/$USER/openproject", "/home/$USER/openproject/tmp" ] WORKDIR /home/$USER/openproject ENTRYPOINT [ "/usr/sbin/entrypoint.sh" ] CMD ["setup-tests", "bash"] # ruby servers EXPOSE 3000-3016 # billy proxy servers EXPOSE 4000-4016