FROM redmine:5-bullseye COPY plugins/ plugins/ COPY patches/* ./ COPY pre-entrypoint.sh / ENV REDMINE_SEND_REMINDERS_DAYS=0 \ REDMINE_SEND_REMINDERS_CRON_EXPR="0 7 * * 1-5" RUN set -eux; \ apt-get update; \ apt-get install -y cron nodejs gcc make; \ # Compile FFI module chmod 770 /usr/local/bundle/gems /usr/local/bundle/extensions/x86_64-linux /usr/local/bundle/extensions/x86_64-linux/3.1.0; \ bundle check || bundle install; \ # Clean-up apt-get purge -y --auto-remove gcc make; \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ~/.cache; \ # Remove default cron mess rm -f /etc/cron.daily/*; \ rm -f /etc/cron.d/*; \ # Install plugin dependencies # fill up "database.yml" with bogus entries so the redmine Gemfile will pre-install all database adapter dependencies echo '# the following entries only exist to force `bundle install` to pre-install all database adapter dependencies -- they can be safely removed/ignored' > ./config/database.yml; \ for adapter in mysql2 postgresql sqlserver sqlite3; do \ echo "$adapter:" >> ./config/database.yml; \ echo " adapter: $adapter" >> ./config/database.yml; \ done; \ bundle check || bundle install; \ # For hourglass plugin cp plugins/000_redmine_x_ux_upgrade/init.rb plugins/000_redmine_x_ux_upgrade/init.rb.orig; \ git apply ux_upgrade-disable_db.patch; \ echo Hourglass::Assets.compile|RAILS_ENV=mysql2 rails console; \ #bundle exec rake redmine:plugins:assets RAILS_ENV=mysql2 NAME=redmine_hourglass; \ #bundle exec rake redmine:plugins:assets RAILS_ENV=postgresql NAME=redmine_hourglass; \ #bundle exec rake redmine:plugins:assets RAILS_ENV=sqlserver NAME=redmine_hourglass; \ #bundle exec rake redmine:plugins:assets RAILS_ENV=sqlite3 NAME=redmine_hourglass; \ rm ./config/database.yml; \ mv plugins/000_redmine_x_ux_upgrade/init.rb.orig plugins/000_redmine_x_ux_upgrade/init.rb; \ chmod +x /pre-entrypoint.sh; \ # setting ENTRYPOINT destroys CMD so replace the entrypoint script and call it later # (see bottom note in https://docs.docker.com/engine/reference/builder/#entrypoint) mv /docker-entrypoint.sh /orig-entrypoint.sh; \ mv /pre-entrypoint.sh /docker-entrypoint.sh; \ # Apply patches git apply project_identifier.patch; \ rm *.patch