- Overview
- Software
- Changelog
- 0.22.0 (19 November 2019)
- 0.21.0 (30 August 2019)
- 0.20.0 (28 August 2019)
- 0.19.1 (17 May 2019)
- 0.19.0 (16 May 2019)
- 0.18.2 (11 April 2019)
- 0.18.1 (2 April 2019)
- 0.18.0 (15 March 2019)
- 0.17.2 (11 March 2019)
- 0.17.1 (1 March 2019)
- 0.17.0 (24 February 2019)
- 0.16.0 (3 February 2019)
- 0.15.1 (9 January 2019)
- 0.15.0 (29 December 2018)
- 0.14.2 (28 December 2018)
- 0.14.1 (20 December 2018)
- 0.14.0 (19 October 2018)
- 0.13.4 (10 October 2018)
- 0.13.3 (24 September 2018)
- 0.13.2 (20 September 2018)
- 0.13.1 (24 June 2018)
- 0.13.0 (11 June 2018)
- 0.12.0 (11 April 2018) WITHDRAWN — DO NOT USE
- 0.11.2 (15 March 2018)
- 0.11.1 (7 March 2018)
- 0.11.0 (4 March 2018)
- 0.10.0 (1 March 2018)
- 0.9.0 (11 January 2018)
- 0.8.0 (8 January 2018)
- 0.7.0 (17 November 2017)
- Additional Documentation
- Legal
I often build from Ruby official base images, install additional software packages, and do some basic Ruby housekeeping (installing Bundler and making sure the system Gems are up-to-date). On a reasonably modern iMac with a decent First World internet connection, this can take about 20 minutes. Repeat this half-a-dozen times over the course of a day and you've lost two hours. As Orwell wrote, doubleplus ungood.
Image Version 0.18.2 will be the last explicitly-tagged image version which only updates Gem versions, without changes to either the list of Gems installed or the process of building these images. At least one of those two things must change to justify a new version tag going forward.
Version 0.17.0 of these images includes support for Alpine Linux 3.9, the current release as of 29 January 2019. Version 0.16.0 had supported Alpine 3.8, and versions prior to that had supported Alpine 3.7. We will continue to support only the most recent stable release of Alpine Linux in our images; if that causes difficulties, please feel free to open an issue.
With effect from Version 0.16.0, there are no longer any -qt
images built (that installed the Qt window manager and the capybara
and (historically) capybara-webkit
Gems). Only the images previously labelled -no-qt
are supported. Since there is no longer a difference between -no-qt
and anything else, that segment is dropped from the image name.
This has been done because capybara-webkit
has given us and countless other teams ulcers for quite some time, and our own downstream projects no longer use it (in favour of Capybara+Selenium presently, but Rubium) is firmly in the "assess" ring of our technology radar.) This also simplifies our build matrix and reduces the number of tags listed on Docker Hub.
Version 0.16.0 removes support for Ruby Version 2.5.1. The only supported 2.5.x Ruby version supported is Version 2.5.3. It also removes images based on Alpine Linux 3.7 in favour of Alpine 3.8.
Later versions of these images continue to only include the 2.6.x and 2.5.x versions of Ruby, and the Alpine Linux base OS image, that were current at the time that they were built. Using minimally-specific image tags, e.g., 2-stretch
or 2.6-alpine
, is recommended except for testing and troubleshooting purposes.
Each image has one tag that follows the format 2.x.y-os_build
, where
2.x.y
is the full version number of the Ruby version hosted by the image, which will be one of2.6.3
(the current version) or2.5.5
(the current2.5
release);os_build
identifies which OS and variant the image was based on. These can be any one ofstretch
: Debian Stretch (9.0). This is, by far, the largest variant of the image;stretch-slim
: A "slim" version of Stretch, but still considerably larger than anything built on Alpine;alpine3.9
(synonyms:alpine39
andalpine
): Alpine Linux 3.9, a minimalist Linux distribution. (There is no 'slim' version ofalpine
; it's already the smallest of the listed images).
The latest
tag identifies the latest version of Ruby (as of Febuary 2019, version 2.6.1) on the latest, non-slim
version of Debian (currently stretch
). It should be the default choice when you simply want the most recent supported Ruby version, but is not recommended for production use in most cases. (We recommend exploring basing your image on an alpine
build for production.)
Minor-version tags such as 2.6-stretch
or 2.5-alpine
identify the latest supported release of that minor version of Ruby on the specified OS build. As later versions of Ruby are released and supported (e.g., a hypothetical 2.6.2 or 2.5.4), the corresponding minor-version tag will be redefined to match the new full-version-number tag.
Major-version tags (e.g., 2-stretch
or 2-alpine3.9
) identify the latest supported minor release of the latest supported major release of Ruby (currently 2.6.1
), and are updated in a manner analogous to minor-version tags; i.e., when Ruby 2.7 is released (expected to be in December, 2019), each major-version tag will be updated to match 2.7.0
on each respective operating system (e.g., 2.7.0-stretch
).
Tags which do not include a Ruby version number are built using the latest supported version of Ruby on the OS build identified by their name, e.g., stretch
or alpine
. This differs from latest
in that latest
is presently defined as always being on the latest non-slim
Debian build (currently stretch
).
Finally, the Alpine Linux OS build names differ from the Debian conventions in that Alpine is the only OS build that encodes (major and minor) version numbers. Hence, alpine3.9
is synonymous with alpine39
and, until a newer version of Alpine is supported by the official Ruby base images, alpine
is as well. That is to say that 2.6.5-alpine3.9
and alpine
(presently) reference the same image.
Why no tags for, e.g., 2-slim-jessie
? First, support for Jessie is dead; as of September, 2018, all Debian builds are on Stretch. We use tag names intended to be consistent with those of the official Ruby Docker images; the unadorned 2
states that the tag is for the latest 2.x Ruby version. No Debian Jessie-based images should exist for any Ruby version. It is possible that some such tags were created in error and not caught prior to release on Docker Hub; if you find one, please open an issue. Thanks!
Versions of these images prior to Release 0.11.0 published Dockerfile
s for each supported Ruby version/OS build variant. Release 0.11.0 and later use Docker build arguments to configure the appropriate "template" Dockerfiles
instead, depending on whether a Debian or Alpine image is being built; as of Version 0.16.0, there are only two basic variants per Ruby version. These templates are:
Note that these files are not complete Dockerfiles in and of themselves; they depend on build arguments to configure settings and behaviour.
Jessie is dead; long live Stretch! Ancient, now-unsupported upstream official Ruby images were based on Debian Jessie; however, we no longer build Ruby images based on these no-longer-supported Ruby versions.
The following Debian packages are installed in Debian-based images of this repo:
build-essential
curl
less
nodejs
sudo
wget
zsh
The following Alpine packages are installed in Alpine-based images of this repo:
alpine-sdk
bash
build-base
libressl-dev
nodejs
tzdata
zsh
- Included images for Ruby 2.6.5 and Ruby 2.5.7 rather than 2.6.4 and 2.5.6.
- Included images for Ruby 2.6.4 and Ruby 2.5.6 rather than 2.6.3 and 2.5.5.
- Added locale settings support;
- Last build for Ruby 2.6.3 and Ruby 2.5.5. New versions have been released upstream to address security vulnerabilities, and base images are reportedly built and tagged, but as of 17 May 2019 at 15:25:00, those new base images are not available.
Repairing some typo-level errors.
- Dockerfile templates no longer have obsolete Qt-related label content;
- Several minor bits of outdated-content cleanup in this README; if you see others, open an issue!
Ruby 2.6.3 and 2.5.5 are the current Ruby versions supported. As has been the case since 0.18.0, no images based on previous Ruby versions are built.
Refreshed with updated Gem versions; no configuration changes made.
This will be the last explicitly-tagged image version which only updates Gem versions, without changes to either the list of Gems installed or the process of building these images. At least one of those two things must change to justify a new version tag going forward.
Refreshed with updated Gem versions; no configuration changes made.
Ruby 2.6.2 and 2.5.3 are the only versions built. (Ruby 2.5.5 is the latest official release from ruby-lang; the automated Docker image builds typically lag by at least a day, which means that there will imminently be an 0.18.1 release of these images.)
No images based on previous Ruby versions are built. Additionally, all Alpine-based images now use Alpine Linux 3.9, since the upstream images now all support that version.
Installs latest Bundler version (currently 2.0.1) with --no-document
. This was previously the only Gem documentation in /usr/local/bundle/doc
.
Version 0.17.1
- adds a Docker image label,
jdickey_ruby_image_version
, to the Docker image. Its initial value is, unsurprisingly,0.17.1
; - Adds a build of Ruby 2.6.1 on Alpine Linux 3.9 to the existing Alpine Linux 3.8 versions.
Version 0.17.0 migrates Alpine images from Alpine 3.8 to 3.9. This should have no real effect on most use cases for these images.
With the release of Ruby 2.6.1 and its support by the official base images, the time has come to bid farewell to Ruby 2.5.1 as a supported version. This build now supports only Ruby Versions 2.6.1, 2.6.0, and 2.5.3.
No Version 0.16.0 images include the Qt window manager or the capybara
Gem, nor the Linux OS packages previously required to support them.
There are no longer any images built on Alpine 3.7. All Alpine images are based on Alpine 3.8.
Our first release of the New Year is a Gem-version bump, bringing Bundler to Version 2.0.1 and Nokogiri to Version 1.10.0. No other changes have been made; importantly, Ruby 2.5.1 is still supported for you laggards.
Yes, that was fast. There now are Ruby 2.6.0 official upstream images (should have waited a day); as promised in the 0.14.2 release notes, here we are.
Besides Ruby 2.6.0, this version introduces several changes to the built images; see IMPORTANT NOTES, above.
We've updated Gems again (including bundler
and RubyGems itself). There isn't yet an official Ruby 2.6.0 upstream image yet; that will be the base for 0.15.0 as soon as it's available.
- Added "Important Notes" subsection For Versions 0.15.0 and Later; please read;
- Updated Gem versions.
- Introduced images built on Ruby versions 2.5.3 and 2.4.5.
- Reworded the README to emphasise the urgency of using outdated Ruby versions only for testing.
- No images based on Debian Jessie are supported as of this release;
- Installed (then-)current version of Bundler into default Gem set;
- Updated now-outdated
capybara
,capybara-webkit
, andnokogiri
Gems.
- Added new
jdickey_ruby_image_version
label with same content asversion
. The latter may (should?) be overwritten by subsequent images using this as a base; the former ought not to be; - Updated now-outdated Gem versions.
- Ruby versions prior to 2.4.4 are no longer built as images. Consequently, all upstream images based on Debian support Stretch, and so all Jessie builds (as well as Alpine builds of Ruby versions prior to 2.4.4) have been dropped.
- Ruby <= 2.4.4 on Debian Jessie fixed upstream (but still to be removed on or after 11 September 2018).
- Corrected Qt5 library specification, eliminating Qt4.
- Simplified image-build process.
- Added deprecation notice for Ruby < 2.4.4 to this README.
- Corrected ordering of name tokens in Debian 'slim' images. (Fixes Issue #4.)
- Fixed some minor errors in tagging.
- Added, then commented out, building older Ruby versions on Debian Stretch. (See Issue #5.)
- Added
2.5.0-alpine37
as synonymous tag for2.5.0-alpine-3.7
- Added
2.5.0-alpine37-no-qt-
as synonymous tag for2.5.0-alpine-3.7-no-qt
- BREAKING CHANGE: Slim images now named consistently with corresponding official Ruby images; e.g., rather than
2.5.0-stretch-slim
, that image is now tagged2.5.0-slim-stretch
- Rearchitected build process to no longer require a separate
Dockerfile
per image being built - Made base image specs and as-generated image tag more explicit
- Added
yard
andyard config --gem-install-yri
to-no-qt
images - Moved
libxml2-dev
andlibxslt1-dev
packages from-no-qt
images to Qt/Capybara images, as they are required by Capybara rather than other-no-qt
packages
- Added Ruby 2.4.3 (on Debian Jessie) images
- Reworded
description
label - Cleaned up package-manager command lines
- Qt-included images based on
-no-qt
images, rather than directly on official base image - Added
LABEL
metadata to built images - Further cleanup of
Dockerfile
s and build scripts
- Added Ruby 2.5.0 (on Debian Stretch and Alpine 3.7) images
- Improved consistency between tag names
- Initial release of 2.4 (actually 2.4.2) on Debian Jessie images.
See the official Ruby Docker image docs.
All files in this repository are Copyright © 2017-2019 by Jeff Dickey, and licensed under the MIT License.
As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.