- The docker-compose.yml file now declares a
dev
service which can be used to developt a Rails app with VS Code. It also defines other services such as Mailhog as dependencies.
- Use Ruby 3.1.
- Upgrade passenger-docker to rel-2.4.1.
- The upgrade-app.sh script now calls into the Rails code to trigger a status e-mail when the upgrade has finished. This addresses issues with e-mail reports not being sent becuase the app was restarted inbetween.
- Use Ruby 3.0.
- Upgraded
baseimage-docker
to rel-2.1.0. - It is now possible to define the user name as well as UID and GID of the
main user running the container. By default, this will be user
dora
with UID 1000 and GID 1000. - It is now possible to bootstrap a new Rails application, plugin or whatever
because the script that bootstraps the container no longer errors out if there
is no Rails application present. Instead, when configured not to pull any Git
repository (
GIT_PULL=false
), the script will gracefully exit if there is no Rails application. - The
WEBHOOK_SECRET
environment variable was renamed toDORA_WEB_UPGRADER_SECRET
to play nice with DoraWebUpgrader.
- The default name for the Git branch to checkout was changed from
master
tomain
. On the other hand, e-mail addresses such aswebmaster@...
were not changed. However, in the author's opinion, where is a difference between "master" and "slave" terminology on the one hand and "master" as in "someone is professionally trained to do something really well" on the other (in Germany, "Meister" is a professional title). - The msmtp configuration now uses TLS, rather than STARTSSL, to communicate with the SMTP server.
- Adjust runit's service permissions for sidekiq so that it can be stopped and restarted by the 'dora' group.
- The
shared-mime-info
package is now explicitly installed (following recent licensing changes in the wider Rails ecosystem). - Prevent flooding the container output with warnings if there is no
log
directory. - When upgrading the application,
upgrade-app.sh
will now stop and re-start the sidekiq service. - Properly add the
restart-app.sh
script rather than another copy of theupgrade-app.sh
script into the image.
- Upgraded
baseimage-docker
to rel-1.0.13. - If wkhtmltopdf is present, do not attempt to download it again.
- When executing the Bash shell with the default user (root) inside the container,
the environment variables are now being properly set by sourcing
/etc/container_environment.sh
in.bashrc
. - The Bash prompt now displays the values of
$APP_NAME
and$RAILS_ENV
. host.docker.internal
now resolves to the container host.
- Upgraded
baseimage-docker
to rel-1.0.12. - The Dockerfile now upgrades the operating system at build time.
- Increased waiting time for concurrent upgrade requests from 60 to 300 seconds.
- Show upgradeable packages in status message.
- Include application environment in status message.
- Include
/bin
inPATH
. - Fix file-based locking of the upgrade progress.
- Fixed a fatal typo in the bootstrapping script.
- Exit gracefully during msmtp configuration to not make the bootstrapping fail.
- Do not use
uptime
in the status reports as it would reflect the host's uptime rather than the container uptime.
- The app user and group were renamed from 'app' (passenger-docker's default)
to 'dora' in order to further eliminate confusion. Now there is only one
directory named 'app', and that is the said directory in a Rails application.
Important: If you relay e-mails into your dora container as described in
README.md, you will need to adjust the paths in your mail server configuration
files, e.g.
master.cf
if you use Postfix.
- Implemented basic status reporting.
rails-console.sh
now invokesrails
as theapp
user.- Removed the erroneous
server_name
directive from the Nginx site configuration file.
- Added a simple locking mechanism to the
upgrade-app.sh
script. When Git web hooks are invoked after a push to the repository, the upgrade script may be called twice in quick succession, once for the commits push and once for the tags push.
- Use
passenger-ruby27
rather thanpassenger-ruby26
as base image. - Copy the right
rails-console.sh
helper script into the image. - Fix setting the
PATH
variable to include the path to thebin
directory. - The
rails
command in therails-console.sh
helper script was missing the actual command. - The nodejs installation script now respects the container's operating system's code name.
- Various rather cosmetic improvements to script output.
- Revert setting
$HOME
to/home/app/rails
as this caused the directory not to be empty any more after installing Bundler, which in turn causedgit clone
to fail.
- The directory structure was changed because
/home/app/app
was too confusing in practice, especially considering that a Rails app has anapp
folder itself, which results in a path/home/app/app/app
. That was a bit too much. The main userapp
is "inherited" from Phusion's passenger-docker image and cannot be changed; but the directory that the repository is cloned into was renamed fromapp
torails
. Important: If you relay e-mails into your dora container as described in README.md, you may need to adjust the paths in your mail server configuration files, e.g.master.cf
if you use Postfix.
passenger-docker
has been updated from 1.0.9 to 1.0.11 which implies an upgrade of the default Ruby to 2.7.1 and and upgrade of Passenger to 6.0.6.
- Added
restart-app.sh
helper script. - Added
rails-console.sh
helper script.
- Logrotate now uses the
copytruncate
option.
- Explicitly mention SMTP-related environment variables in
docker-compose.yml
so they are properly picked up from the current environment.
- Add MailHog to
docker-compose
. - Added logrotate configuration for
/shared/log/*.log
.
- Expanded README.md with more instructions to configure the Rails application.
- Always git-describe repository, even if there are no tags.
- Set Sidekiq environment to
$PASSENGER_APP_ENV
.
$PATH
is prepended with/home/app/app/bin
bybootstrap-container.sh
in order to make Rails scripts easily accessible.- The image now comes with ImageMagick installed.
- Local Bundler configuration is now properly set.
- Add suggestions to configure Postfix to let the Rails app receive mail.
- Git repository is described to
tmp/version
rather thanpublic/version
.
- Git repository is 'described' to
public/version
. - Add a
WEBHOOK_SECRET
environment variable.
- Tag adminer at version ~> 4.7.
- Configure the container's time zone using the
$TIMEZONE
environment variable.
- Install wkhtmltopdf unless the
environment variable
$NO_WKHTMLTOPDF
is defined.
Initial release.