rails
Ruby on Rails application runtime with the gems and native extensions preinstalled. Built from source, signed and rebuilt daily against CVE fixes.
- Compressed size
- 58 MB
- Architectures
- amd64, arm64
- Default user
- nonroot (65532)
- Last built
- today
- Upstream
- rubyonrails.org
Pull this image
docker pull ghcr.io/rtvkiz/minimal-rails:latest docker pull ghcr.io/rtvkiz/minimal-rails:latest-dev The -dev variant adds a shell, package manager and build toolchain. For CI and debugging — not production.
- 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
- Labels
-
org.opencontainers.image.title minimal-rails org.opencontainers.image.description Hardened Ruby on Rails image built from source via melange with daily CVE patches org.opencontainers.image.url https://github.com/rtvkiz/minimal org.opencontainers.image.source https://github.com/rtvkiz/minimal/tree/main/images/rails org.opencontainers.image.licenses Ruby AND MIT
- Entrypoint
- /usr/bin/ruby
- User
- nonroot (65532)
- Working dir
- /app
- Architectures
- x86_64, aarch64
- Environment
- Labels
-
org.opencontainers.image.title minimal-rails-dev org.opencontainers.image.description Dev variant of minimal-rails: same Rails + Ruby + bundler runtime + shell + build toolchain + Node.js for assets. Not for production. org.opencontainers.image.url https://github.com/rtvkiz/minimal org.opencontainers.image.source https://github.com/rtvkiz/minimal/tree/main/images/rails org.opencontainers.image.licenses Ruby AND MIT dev.minimal.variant dev
| Tag | Pull | Published |
|---|---|---|
| 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.
| Package | Version | License |
|---|---|---|
| alpine/ca-certificates | 20261020 | MPL-2.0 AND MIT |
| brotli | v1.2.1 | MIT |
| brotli.yaml | f5ef816d1cb2bd0e165a402c4e8a4c4622464bf3 | Apache-2.0 |
| ca-certificates-bundle | 20261020-r0 | MPL-2.0 AND MIT |
| ca-certificates-bundle | 20261020-r0 | (MPL-2.0 AND MIT) |
| ca-certificates-bundle | 20261020-r0 | — |
| ca-certificates.yaml | 8061afafa65af5a9026707a8880e14120dd6f4a0 | Apache-2.0 |
| gcc.yaml | 4d188060cbd00821a95f1ef60605da4817e781bb | Apache-2.0 |
| git/readline | readline-8.3 | GPL-3.0-or-later |
| glibc-2.44 | 2.44-r16 | LGPL-2.1-or-later |
| glibc-2.44 | 2.44-r16 | LGPL-2.1-or-later |
| glibc-2.44 | 2.44-r16 | — |
| glibc-2.44-locale-posix | 2.44-r16 | LGPL-2.1-or-later |
| glibc-2.44-locale-posix | 2.44-r16 | LGPL-2.1-or-later |
| glibc-2.44-locale-posix | 2.44-r16 | — |
| glibc-2.44.yaml | 69c2b75e0711c38be3c5881e3a141667ccf54341 | Apache-2.0 |
| gnutools/gcc | releases/gcc-16.2.0 | GPL-3.0-or-later WITH GCC-exception-3.1 |
| gnutools/glibc | 47e2b570410fab606de29f550534a721184852c3 | LGPL-2.1-or-later |
| images/rails/melange.yaml | 862101ee7af52b6dfb7db319fbf7c11793a3d433 | — |
| ld-linux-2.44 | 2.44-r16 | LGPL-2.1-or-later |
| ld-linux-2.44 | 2.44-r16 | LGPL-2.1-or-later |
| ld-linux-2.44 | 2.44-r16 | — |
| libbrotlicommon1 | 1.2.1-r3 | MIT |
| libbrotlicommon1 | 1.2.1-r3 | MIT |
| libbrotlicommon1 | 1.2.1-r3 | — |
| libbrotlidec1 | 1.2.1-r3 | MIT |
| libbrotlidec1 | 1.2.1-r3 | MIT |
| libbrotlidec1 | 1.2.1-r3 | — |
| libbrotlienc1 | 1.2.1-r3 | MIT |
| libbrotlienc1 | 1.2.1-r3 | MIT |
| libbrotlienc1 | 1.2.1-r3 | — |
| libcrypt1-2.44 | 2.44-r16 | LGPL-2.1-or-later |
| libcrypt1-2.44 | 2.44-r16 | LGPL-2.1-or-later |
| libcrypt1-2.44 | 2.44-r16 | — |
| libffi | 3.8.0-r2 | MIT |
| libffi | v3.8.0 | MIT |
| libffi | 3.8.0-r2 | MIT |
| libffi | 3.8.0-r2 | — |
| libffi.yaml | aaa2344b75ef8b19889f087c91e10b11f191e15c | Apache-2.0 |
| libgcc | 16.2.0-r3 | GPL-3.0-or-later WITH GCC-exception-3.1 |
| libgcc | 16.2.0-r3 | (GPL-3.0-or-later WITH GCC-exception-3.1) |
| libgcc | 16.2.0-r3 | — |
| libstdc++ | 16.2.0-r3 | GPL-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 | — |
| libxcrypt | 4.5.2-r8 | GPL-2.0-or-later AND LGPL-2.1-or-later |
| libxcrypt | v4.5.2 | GPL-2.0-or-later AND LGPL-2.1-or-later |
| libxcrypt | 4.5.2-r8 | (GPL-2.0-or-later AND LGPL-2.1-or-later) |
| libxcrypt | 4.5.2-r8 | — |
| libxcrypt.yaml | b9898dbb7125f3678bc8c6cd9e7a43d9d9d2c518 | Apache-2.0 |
| libyaml | 0.2.5 | MIT |
| ncurses | 6.6.20261107-r0 | MIT |
| ncurses | 6.6.20261107-r0 | MIT |
| ncurses | 6.6.20261107-r0 | — |
| ncurses-snapshots | v6_6_20261107 | MIT |
| ncurses-terminfo-base | 6.6.20261107-r0 | MIT |
| ncurses-terminfo-base | 6.6.20261107-r0 | MIT |
| ncurses-terminfo-base | 6.6.20261107-r0 | — |
| ncurses.yaml | 57b90c0084b0bc101663cdfcaa44f4ce83312443 | Apache-2.0 |
| openssl | openssl-4.1.0 | Apache-2.0 |
| openssl | openssl-4.0.3 | Apache-2.0 |
| openssl | openssl-3.6.5 | Apache-2.0 |
| openssl-3.6-libcrypto | 3.6.5-r6 | Apache-2.0 |
| openssl-3.6-libcrypto | 3.6.5-r6 | Apache-2.0 |
| openssl-3.6-libcrypto | 3.6.5-r6 | — |
| openssl-3.6-libssl | 3.6.5-r6 | Apache-2.0 |
| openssl-3.6-libssl | 3.6.5-r6 | Apache-2.0 |
| openssl-3.6-libssl | 3.6.5-r6 | — |
| openssl-4.0-libcrypto | 4.0.3-r8 | Apache-2.0 |
| openssl-4.0-libcrypto | 4.0.3-r8 | Apache-2.0 |
| openssl-4.0-libcrypto | 4.0.3-r8 | — |
| openssl-4.0-libssl | 4.0.3-r8 | Apache-2.0 |
| openssl-4.0-libssl | 4.0.3-r8 | Apache-2.0 |
| openssl-4.0-libssl | 4.0.3-r8 | — |
| openssl-4.0.yaml | 53fb2f6751f832fa61ddba06cb8a40dbba5f409f | Apache-2.0 |
| openssl-provider-legacy-allowed | 4.1.0-r0 | Apache-2.0 |
| openssl-provider-legacy-allowed | 4.1.0-r0 | Apache-2.0 |
| openssl-provider-legacy-allowed | 4.1.0-r0 | — |
| openssl-provider-legacy-allowed.yaml | aeae4801330be6fd269d5ed5640dc37b58ccab09 | Apache-2.0 |
| openssl.yaml | 106006908276f73e5d13ceca9bc7038ea2d46446 | Apache-2.0 |
| rails | 4.0.9-r0 | Ruby AND MIT |
| readline | 8.3-r3 | GPL-3.0-or-later |
| readline | 8.3-r3 | GPL-3.0-or-later |
| readline | 8.3-r3 | — |
| readline.yaml | 20a5359ac0a7a6aca23efa343f0f29c8d3ea1453 | Apache-2.0 |
| sha256:765d18b828502a6e87ed3e224b7e1d7fc28efeaa95dc64461521105da9203cad | sha256:765d18b828502a6e87ed3e224b7e1d7fc28efeaa95dc64461521105da9203cad | — |
| sha256:a4daa80f9d8cc23fcf2efce104876892273edb8a2154c3a67a1e50cff9a68e93 | 20230201 | — |
| wolfi | 20230201 | — |
| wolfi-baselayout | 20230201-r31 | MIT |
| wolfi-baselayout | 20230201-r31 | MIT |
| wolfi-baselayout | 20230201-r31 | — |
| wolfi-baselayout.yaml | ed415005c84750f03c4a9252137813734a224ae7 | Apache-2.0 |
| yaml | 0.2.5-r12 | MIT |
| yaml | 0.2.5-r12 | MIT |
| yaml | 0.2.5-r12 | — |
| yaml.yaml | a47eef19c8de84e8b2d843ace686da335a870468 | Apache-2.0 |
| zlib | 1.3.2.1_rc20260921-r2 | MPL-2.0 AND MIT |
| zlib | 767c4c947852e143f582c85f14cf573411df1b35 | MPL-2.0 AND MIT |
| zlib | 1.3.2.1_rc20260921-r2 | (MPL-2.0 AND MIT) |
| zlib | 1.3.2.1_rc20260921-r2 | — |
| zlib.yaml | 5aeb575ed7ca64fb21dfda042e170d08f1654bbc | Apache-2.0 |
1 high2 low 3 fixable
| CVE | Severity | Package | Installed | Fixed 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.