rails

Ruby on Rails application runtime with the gems and native extensions preinstalled. Built from source, signed and rebuilt daily against CVE fixes.

Vulnerabilities
Compressed size
58 MB
Architectures
amd64, arm64
Default user
nonroot (65532)
Last built
today

Pull this image

docker pull ghcr.io/rtvkiz/minimal-rails:latest
Repository
ghcr.io/rtvkiz/minimal-rails
Digest
sha256:9ba46ee0ae0c67ea87ece668e524403538593d966931d4278ce8e6bf921db433
Built at
2026-11-12T08:01:24Z
Primary package
rails
Entrypoint
/usr/bin/ruby
User
nonroot (65532)
Working dir
/app
Architectures
x86_64, aarch64
Environment
PATH=/usr/lib/ruby/gems/4.0.0/bin:/usr/bin:/binGEM_HOME=/usr/lib/ruby/gems/4.0.0BUNDLE_SILENCE_ROOT_WARNING=1LANG=C.UTF-8
Labels
org.opencontainers.image.titleminimal-rails
org.opencontainers.image.descriptionHardened Ruby on Rails image built from source via melange with daily CVE patches
org.opencontainers.image.urlhttps://github.com/rtvkiz/minimal
org.opencontainers.image.sourcehttps://github.com/rtvkiz/minimal/tree/main/images/rails
org.opencontainers.image.licensesRuby AND MIT
TagPullPublished
4-dev ghcr.io/rtvkiz/minimal-rails:4-dev 2026-11-12
4.0-dev ghcr.io/rtvkiz/minimal-rails:4.0-dev 2026-11-12
4.0.9-r0-20261112-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261112-dev 2026-11-12
4.0.9-r0-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-dev 2026-11-12
latest-dev ghcr.io/rtvkiz/minimal-rails:latest-dev 2026-11-12
4 ghcr.io/rtvkiz/minimal-rails:4 2026-11-12
4.0 ghcr.io/rtvkiz/minimal-rails:4.0 2026-11-12
4.0.9-r0 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0 2026-11-12
4.0.9-r0-20261112 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261112 2026-11-12
latest ghcr.io/rtvkiz/minimal-rails:latest 2026-11-12
4.0.9-r0-20261111-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261111-dev 2026-11-11
4.0.9-r0-20261111 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261111 2026-11-11
4.0.9-r0-20261110 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261110 2026-11-10
4.0.9-r0-20261110-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261110-dev 2026-11-10
4.0.9-r0-20261109 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261109 2026-11-09
4.0.9-r0-20261109-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261109-dev 2026-11-09
4.0.9-r0-20261108-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261108-dev 2026-11-08
4.0.9-r0-20261108 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261108 2026-11-08
4.0.9-r0-20261107 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261107 2026-11-07
4.0.9-r0-20261107-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261107-dev 2026-11-07
4.0.9-r0-20261106 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261106 2026-11-06
4.0.9-r0-20261106-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261106-dev 2026-11-06
4.0.9-r0-20261105 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261105 2026-11-05
4.0.9-r0-20261105-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261105-dev 2026-11-05
4.0.9-r0-20261104 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261104 2026-11-04
4.0.9-r0-20261104-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261104-dev 2026-11-04
4.0.9-r0-20261027 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261027 2026-10-27
4.0.9-r0-20261027-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261027-dev 2026-10-27
4.0.9-r0-20261026-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261026-dev 2026-10-26
4.0.9-r0-20261026 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261026 2026-10-26
4.0.9-r0-20261025-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261025-dev 2026-10-25
4.0.9-r0-20261025 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261025 2026-10-25
4.0.9-r0-20261024-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261024-dev 2026-10-24
4.0.9-r0-20261024 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261024 2026-10-24
4.0.9-r0-20261023 ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261023 2026-10-23
4.0.9-r0-20261023-dev ghcr.io/rtvkiz/minimal-rails:4.0.9-r0-20261023-dev 2026-10-23
4.0.8-r0-20261023-dev ghcr.io/rtvkiz/minimal-rails:4.0.8-r0-20261023-dev 2026-10-23
4.0.8-r0-dev ghcr.io/rtvkiz/minimal-rails:4.0.8-r0-dev 2026-10-23
4.0.8-r0 ghcr.io/rtvkiz/minimal-rails:4.0.8-r0 2026-10-23
4.0.8-r0-20261023 ghcr.io/rtvkiz/minimal-rails:4.0.8-r0-20261023 2026-10-23
4.0.7-r0 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0 2026-10-23
4.0.7-r0-20261023 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261023 2026-10-23
4.0.7-r0-20261023-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261023-dev 2026-10-23
4.0.7-r0-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-dev 2026-10-23
4.0.7-r0-20261022-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261022-dev 2026-10-22
4.0.7-r0-20261022 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261022 2026-10-22
4.0.7-r0-20261021-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261021-dev 2026-10-21
4.0.7-r0-20261021 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261021 2026-10-21
4.0.7-r0-20261020 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261020 2026-10-20
4.0.7-r0-20261020-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261020-dev 2026-10-20
4.0.7-r0-20261019-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261019-dev 2026-10-19
4.0.7-r0-20261019 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261019 2026-10-19
4.0.7-r0-20261018 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261018 2026-10-18
4.0.7-r0-20261018-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261018-dev 2026-10-18
4.0.7-r0-20261017-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261017-dev 2026-10-17
4.0.7-r0-20261017 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261017 2026-10-17
4.0.7-r0-20261016 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261016 2026-10-16
4.0.7-r0-20261016-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261016-dev 2026-10-16
4.0.7-r0-20261015 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261015 2026-10-15
4.0.7-r0-20261015-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261015-dev 2026-10-15
4.0.7-r0-20261014 ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261014 2026-10-14
4.0.7-r0-20261014-dev ghcr.io/rtvkiz/minimal-rails:4.0.7-r0-20261014-dev 2026-10-14

101 packages in the image, resolved from the SPDX SBOM.

PackageVersionLicense
alpine/ca-certificates20261020MPL-2.0 AND MIT
brotliv1.2.1MIT
brotli.yamlf5ef816d1cb2bd0e165a402c4e8a4c4622464bf3Apache-2.0
ca-certificates-bundle20261020-r0MPL-2.0 AND MIT
ca-certificates-bundle20261020-r0(MPL-2.0 AND MIT)
ca-certificates-bundle20261020-r0—
ca-certificates.yaml8061afafa65af5a9026707a8880e14120dd6f4a0Apache-2.0
gcc.yaml4d188060cbd00821a95f1ef60605da4817e781bbApache-2.0
git/readlinereadline-8.3GPL-3.0-or-later
glibc-2.442.44-r16LGPL-2.1-or-later
glibc-2.442.44-r16LGPL-2.1-or-later
glibc-2.442.44-r16—
glibc-2.44-locale-posix2.44-r16LGPL-2.1-or-later
glibc-2.44-locale-posix2.44-r16LGPL-2.1-or-later
glibc-2.44-locale-posix2.44-r16—
glibc-2.44.yaml69c2b75e0711c38be3c5881e3a141667ccf54341Apache-2.0
gnutools/gccreleases/gcc-16.2.0GPL-3.0-or-later WITH GCC-exception-3.1
gnutools/glibc47e2b570410fab606de29f550534a721184852c3LGPL-2.1-or-later
images/rails/melange.yaml862101ee7af52b6dfb7db319fbf7c11793a3d433—
ld-linux-2.442.44-r16LGPL-2.1-or-later
ld-linux-2.442.44-r16LGPL-2.1-or-later
ld-linux-2.442.44-r16—
libbrotlicommon11.2.1-r3MIT
libbrotlicommon11.2.1-r3MIT
libbrotlicommon11.2.1-r3—
libbrotlidec11.2.1-r3MIT
libbrotlidec11.2.1-r3MIT
libbrotlidec11.2.1-r3—
libbrotlienc11.2.1-r3MIT
libbrotlienc11.2.1-r3MIT
libbrotlienc11.2.1-r3—
libcrypt1-2.442.44-r16LGPL-2.1-or-later
libcrypt1-2.442.44-r16LGPL-2.1-or-later
libcrypt1-2.442.44-r16—
libffi3.8.0-r2MIT
libffiv3.8.0MIT
libffi3.8.0-r2MIT
libffi3.8.0-r2—
libffi.yamlaaa2344b75ef8b19889f087c91e10b11f191e15cApache-2.0
libgcc16.2.0-r3GPL-3.0-or-later WITH GCC-exception-3.1
libgcc16.2.0-r3(GPL-3.0-or-later WITH GCC-exception-3.1)
libgcc16.2.0-r3—
libstdc++16.2.0-r3GPL-3.0-or-later WITH GCC-exception-3.1
libstdc++16.2.0-r3(GPL-3.0-or-later WITH GCC-exception-3.1)
libstdc++16.2.0-r3—
libxcrypt4.5.2-r8GPL-2.0-or-later AND LGPL-2.1-or-later
libxcryptv4.5.2GPL-2.0-or-later AND LGPL-2.1-or-later
libxcrypt4.5.2-r8(GPL-2.0-or-later AND LGPL-2.1-or-later)
libxcrypt4.5.2-r8—
libxcrypt.yamlb9898dbb7125f3678bc8c6cd9e7a43d9d9d2c518Apache-2.0
libyaml0.2.5MIT
ncurses6.6.20261107-r0MIT
ncurses6.6.20261107-r0MIT
ncurses6.6.20261107-r0—
ncurses-snapshotsv6_6_20261107MIT
ncurses-terminfo-base6.6.20261107-r0MIT
ncurses-terminfo-base6.6.20261107-r0MIT
ncurses-terminfo-base6.6.20261107-r0—
ncurses.yaml57b90c0084b0bc101663cdfcaa44f4ce83312443Apache-2.0
opensslopenssl-4.1.0Apache-2.0
opensslopenssl-4.0.3Apache-2.0
opensslopenssl-3.6.5Apache-2.0
openssl-3.6-libcrypto3.6.5-r6Apache-2.0
openssl-3.6-libcrypto3.6.5-r6Apache-2.0
openssl-3.6-libcrypto3.6.5-r6—
openssl-3.6-libssl3.6.5-r6Apache-2.0
openssl-3.6-libssl3.6.5-r6Apache-2.0
openssl-3.6-libssl3.6.5-r6—
openssl-4.0-libcrypto4.0.3-r8Apache-2.0
openssl-4.0-libcrypto4.0.3-r8Apache-2.0
openssl-4.0-libcrypto4.0.3-r8—
openssl-4.0-libssl4.0.3-r8Apache-2.0
openssl-4.0-libssl4.0.3-r8Apache-2.0
openssl-4.0-libssl4.0.3-r8—
openssl-4.0.yaml53fb2f6751f832fa61ddba06cb8a40dbba5f409fApache-2.0
openssl-provider-legacy-allowed4.1.0-r0Apache-2.0
openssl-provider-legacy-allowed4.1.0-r0Apache-2.0
openssl-provider-legacy-allowed4.1.0-r0—
openssl-provider-legacy-allowed.yamlaeae4801330be6fd269d5ed5640dc37b58ccab09Apache-2.0
openssl.yaml106006908276f73e5d13ceca9bc7038ea2d46446Apache-2.0
rails4.0.9-r0Ruby AND MIT
readline8.3-r3GPL-3.0-or-later
readline8.3-r3GPL-3.0-or-later
readline8.3-r3—
readline.yaml20a5359ac0a7a6aca23efa343f0f29c8d3ea1453Apache-2.0
sha256:765d18b828502a6e87ed3e224b7e1d7fc28efeaa95dc64461521105da9203cadsha256:765d18b828502a6e87ed3e224b7e1d7fc28efeaa95dc64461521105da9203cad—
sha256:a4daa80f9d8cc23fcf2efce104876892273edb8a2154c3a67a1e50cff9a68e9320230201—
wolfi20230201—
wolfi-baselayout20230201-r31MIT
wolfi-baselayout20230201-r31MIT
wolfi-baselayout20230201-r31—
wolfi-baselayout.yamled415005c84750f03c4a9252137813734a224ae7Apache-2.0
yaml0.2.5-r12MIT
yaml0.2.5-r12MIT
yaml0.2.5-r12—
yaml.yamla47eef19c8de84e8b2d843ace686da335a870468Apache-2.0
zlib1.3.2.1_rc20260921-r2MPL-2.0 AND MIT
zlib767c4c947852e143f582c85f14cf573411df1b35MPL-2.0 AND MIT
zlib1.3.2.1_rc20260921-r2(MPL-2.0 AND MIT)
zlib1.3.2.1_rc20260921-r2—
zlib.yaml5aeb575ed7ca64fb21dfda042e170d08f1654bbcApache-2.0
1 high2 low 3 fixable
CVESeverityPackageInstalledFixed in
GHSA-3m6g-2423-7cp3 High json 2.18.0 2.19.2
GHSA-x2f5-4prf-w687 Low json 2.18.0 2.19.9
GHSA-x2f5-4prf-w687 Low json 2.19.2 2.19.9

Everything is verifiable without an account. Copy and run:

Build provenance (SLSA v1.0, Build L2)

gh attestation verify oci://ghcr.io/rtvkiz/minimal-rails:latest --owner rtvkiz

Cosign signature

cosign verify \
  --certificate-identity-regexp='https://github.com/rtvkiz/minimal/' \
  --certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
  ghcr.io/rtvkiz/minimal-rails:latest

SBOM attestation (SPDX)

cosign verify-attestation --type spdxjson \
  --certificate-identity-regexp='https://github.com/rtvkiz/minimal/' \
  --certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
  ghcr.io/rtvkiz/minimal-rails:latest \
  | jq -r '.payload | @base64d | fromjson | .predicate'

Signatures are logged in the public Rekor transparency log.

More Apps images

Weighing this against another provider? The comparison pages publish head-to-head scan data with the raw dataset, including the images where Minimal comes off worse — or read the migration guide for what actually breaks when you switch.