erlang
Erlang/OTP runtime for concurrent, fault-tolerant applications, built from source (not Wolfi's package). Shell-required, rebuilt daily against CVE fixes.
- Vulnerabilities
- None
- Compressed size
- 53 MB
- Architectures
- amd64, arm64
- Default user
- nonroot (65532)
- Last built
- today
- Upstream
- www.erlang.org
Pull this image
docker pull ghcr.io/rtvkiz/minimal-erlang:latest docker pull ghcr.io/rtvkiz/minimal-erlang:latest-dev The -dev variant adds a shell, package manager and build toolchain. For CI and debugging — not production.
- Repository
- ghcr.io/rtvkiz/minimal-erlang
- Digest
- sha256:7c5870f763e7b54fd4fc321f7fde75994690ed7821b1dec74d145c98edffd3df
- Built at
- 2026-11-12T08:18:54Z
- Primary package
- erlang
- Entrypoint
- /usr/bin/erl
- User
- nonroot (65532)
- Working dir
- /app
- Architectures
- x86_64, aarch64
- Environment
- Labels
-
org.opencontainers.image.title minimal-erlang org.opencontainers.image.description Hardened Erlang/OTP runtime built from source with CVE patches on every rebuild org.opencontainers.image.url https://github.com/rtvkiz/minimal org.opencontainers.image.source https://github.com/rtvkiz/minimal/tree/main/images/erlang org.opencontainers.image.licenses Apache-2.0
- Entrypoint
- /usr/bin/erl
- User
- nonroot (65532)
- Working dir
- /app
- Architectures
- x86_64, aarch64
- Environment
- Labels
-
org.opencontainers.image.title minimal-erlang-dev org.opencontainers.image.description Dev variant of minimal-erlang: same OTP + shell, C toolchain and rebar3. Not for production. org.opencontainers.image.url https://github.com/rtvkiz/minimal org.opencontainers.image.source https://github.com/rtvkiz/minimal/tree/main/images/erlang org.opencontainers.image.licenses Apache-2.0 dev.minimal.variant dev
| Tag | Pull | Published |
|---|---|---|
| 29 | ghcr.io/rtvkiz/minimal-erlang:29 | 2026-11-12 |
| 29.1 | ghcr.io/rtvkiz/minimal-erlang:29.1 | 2026-11-12 |
| 29.1.2-r0 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0 | 2026-11-12 |
| 29.1.2-r0-20261112 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261112 | 2026-11-12 |
| latest | ghcr.io/rtvkiz/minimal-erlang:latest | 2026-11-12 |
| 29-dev | ghcr.io/rtvkiz/minimal-erlang:29-dev | 2026-11-12 |
| 29.1-dev | ghcr.io/rtvkiz/minimal-erlang:29.1-dev | 2026-11-12 |
| 29.1.2-r0-20261112-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261112-dev | 2026-11-12 |
| 29.1.2-r0-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-dev | 2026-11-12 |
| latest-dev | ghcr.io/rtvkiz/minimal-erlang:latest-dev | 2026-11-12 |
| 29.1.2-r0-20261111-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261111-dev | 2026-11-11 |
| 29.1.2-r0-20261111 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261111 | 2026-11-11 |
| 29.1.2-r0-20261110 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261110 | 2026-11-10 |
| 29.1.2-r0-20261110-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261110-dev | 2026-11-10 |
| 29.1.2-r0-20261109-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261109-dev | 2026-11-09 |
| 29.1.2-r0-20261109 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261109 | 2026-11-09 |
| 29.1.2-r0-20261108-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261108-dev | 2026-11-08 |
| 29.1.2-r0-20261108 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261108 | 2026-11-08 |
| 29.1.2-r0-20261107 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261107 | 2026-11-07 |
| 29.1.2-r0-20261107-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261107-dev | 2026-11-07 |
| 29.1.2-r0-20261106 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261106 | 2026-11-06 |
| 29.1.2-r0-20261106-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261106-dev | 2026-11-06 |
| 29.1.2-r0-20261105 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261105 | 2026-11-05 |
| 29.1.2-r0-20261105-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261105-dev | 2026-11-05 |
| 29.1.2-r0-20261104 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261104 | 2026-11-04 |
| 29.1.2-r0-20261104-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261104-dev | 2026-11-04 |
| 29.1.2-r0-20261027-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261027-dev | 2026-10-27 |
| 29.1.2-r0-20261027 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261027 | 2026-10-27 |
| 29.1.2-r0-20261026-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261026-dev | 2026-10-26 |
| 29.1.2-r0-20261026 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261026 | 2026-10-26 |
| 29.1.2-r0-20261025 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261025 | 2026-10-25 |
| 29.1.2-r0-20261025-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261025-dev | 2026-10-25 |
| 29.1.2-r0-20261024 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261024 | 2026-10-24 |
| 29.1.2-r0-20261024-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261024-dev | 2026-10-24 |
| 29.1.2-r0-20261023-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261023-dev | 2026-10-23 |
| 29.1.2-r0-20261023 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261023 | 2026-10-23 |
| 29.1.2-r0-20261022 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261022 | 2026-10-22 |
| 29.1.2-r0-20261022-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261022-dev | 2026-10-22 |
| 29.1.2-r0-20261021-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261021-dev | 2026-10-21 |
| 29.1.2-r0-20261021 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261021 | 2026-10-21 |
| 29.1.2-r0-20261020-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261020-dev | 2026-10-20 |
| 29.1.2-r0-20261020 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261020 | 2026-10-20 |
| 29.1.2-r0-20261019-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261019-dev | 2026-10-19 |
| 29.1.2-r0-20261019 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261019 | 2026-10-19 |
| 29.1.2-r0-20261018-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261018-dev | 2026-10-18 |
| 29.1.2-r0-20261018 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261018 | 2026-10-18 |
| 29.1.2-r0-20261016 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261016 | 2026-10-16 |
| 29.1.2-r0-20261017 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261017 | 2026-10-16 |
| 29.1.2-r0-20261016-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261016-dev | 2026-10-16 |
| 29.1.2-r0-20261017-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261017-dev | 2026-10-16 |
| 29.1.1-r0 | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0 | 2026-10-16 |
| 29.1.1-r0-20261016 | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261016 | 2026-10-16 |
| 29.1.1-r0-20261016-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261016-dev | 2026-10-16 |
| 29.1.1-r0-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-dev | 2026-10-16 |
| 29.1.2-r0-20261015 | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261015 | 2026-10-15 |
| 29.1.2-r0-20261015-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.2-r0-20261015-dev | 2026-10-15 |
| 29.1.1-r0-20261015 | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261015 | 2026-10-15 |
| 29.1.1-r0-20261015-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261015-dev | 2026-10-15 |
| 29.1.1-r0-20261014 | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261014 | 2026-10-14 |
| 29.1.1-r0-20261014-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261014-dev | 2026-10-14 |
| 29.1.1-r0-20261013 | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261013 | 2026-10-13 |
| 29.1.1-r0-20261013-dev | ghcr.io/rtvkiz/minimal-erlang:29.1.1-r0-20261013-dev | 2026-10-13 |
91 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 |
| busybox | 1.38.0-r3 | GPL-2.0-only |
| busybox | 1.38.0-r3 | GPL-2.0-only |
| busybox | 1.38.0-r3 | — |
| busybox_mirror | 1_38_0 | GPL-2.0-only |
| busybox.yaml | 59d45eb49286129d8d21b2469befa3b55be4719b | 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 |
| erlang | 29.1.2-r0 | Apache-2.0 |
| gcc.yaml | 4d188060cbd00821a95f1ef60605da4817e781bb | Apache-2.0 |
| 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/erlang/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 | — |
| 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 |
| 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 |
| sha256:28b99fb3cd919467273b6a0c85db6aad2452d8025c840d5f98d6d2cf8135f967 | sha256:28b99fb3cd919467273b6a0c85db6aad2452d8025c840d5f98d6d2cf8135f967 | — |
| sha256:3be485ee890255e4b0e082292084cc997a6c31eadcd17cd2439f82524b72c6eb | 20230201 | — |
| wolfi | 20230201 | — |
| wolfi-baselayout | 20230201-r31 | MIT |
| wolfi-baselayout | 20230201-r31 | MIT |
| wolfi-baselayout | 20230201-r31 | — |
| wolfi-baselayout.yaml | ed415005c84750f03c4a9252137813734a224ae7 | 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 |
Clean No known vulnerabilities in the latest scan.
Everything is verifiable without an account. Copy and run:
Build provenance (SLSA v1.0, Build L2)
gh attestation verify oci://ghcr.io/rtvkiz/minimal-erlang: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-erlang: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-erlang:latest \
| jq -r '.payload | @base64d | fromjson | .predicate' Signatures are logged in the public Rekor transparency log.
More Languages & Runtimes 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.