OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/docker/ci/Dockerfile

54 lines
1.9 KiB

FROM ruby:3.2.0-buster
MAINTAINER operations@openproject.com
ENV NODE_VERSION="16.17.0"
ENV CHROME_SOURCE_URL="https://dl.google.com/dl/linux/direct/google-chrome-stable_current_amd64.deb https://openproject-public.s3.eu-central-1.amazonaws.com/binaries/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-10 postgresql-client-10 postgresql-13 postgresql-client-13 time pandoc imagemagick libpq-dev default-jre-headless firefox-esr
# Try Downloading binary from fallback source if first one fails
RUN for url in $CHROME_SOURCE_URL; do \
file_name="/tmp/`basename $url`"; \
wget --no-verbose -O $file_name $url && \
apt install -y $file_name && rm -f $file_name && \
break; \
done
ENV CI=true
ENV RAILS_ENV=test
ENV BUNDLER_VERSION="2.4.1"
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
ENV PGVERSION=10
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