{"id":15672486,"url":"https://github.com/moritzheiber/ruby-jemalloc-docker","last_synced_at":"2025-04-24T01:11:12.864Z","repository":{"id":149805288,"uuid":"565776391","full_name":"moritzheiber/ruby-jemalloc-docker","owner":"moritzheiber","description":"A Ruby Docker image, compiled with jemalloc support","archived":false,"fork":false,"pushed_at":"2025-02-25T15:31:36.000Z","size":57,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T05:25:42.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moritzheiber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-14T09:57:38.000Z","updated_at":"2025-02-25T15:31:40.000Z","dependencies_parsed_at":"2023-11-12T13:24:14.424Z","dependency_job_id":"d5f7b16c-47eb-4429-a714-c188e8949e77","html_url":"https://github.com/moritzheiber/ruby-jemalloc-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moritzheiber%2Fruby-jemalloc-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moritzheiber%2Fruby-jemalloc-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moritzheiber%2Fruby-jemalloc-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moritzheiber%2Fruby-jemalloc-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moritzheiber","download_url":"https://codeload.github.com/moritzheiber/ruby-jemalloc-docker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250540941,"owners_count":21447427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T15:27:09.830Z","updated_at":"2025-04-24T01:11:12.848Z","avatar_url":"https://github.com/moritzheiber.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruby Docker image, built with `jemalloc`\n\nA Docker image for Ruby, built with [`jemalloc`](https://scalingo.com/blog/improve-ruby-application-memory-jemalloc).\n\nThe images are based on [the offical Ruby \"slim\"](https://hub.docker.com/_/ruby) and [official Ubuntu \"22.04\"/\"24.04\" (LTS) images](https://hub.docker.com/_/ubuntu) on Docker Hub.\n\nThe following images are used:\n\n- `ruby:${RUBY_VERSION}-slim`\n- `ubuntu:22.04`\n- `ubuntu:24.04`\n\nThe following platforms are built:\n\n- `linux/amd64`\n- `linux/arm64`\n\n\nThe following Ruby versions are built:\n\n- `3.1.4`\n- `3.2.3`\n- `3.3.0`\n\nImages for Ruby \u003e= 3.2.x are compiled with [YJIT](https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md) support.\n\nContainer images are available but no longer maintained for the following versions:\n\n- `3.0.4`\n- `3.0.5`\n- `3.0.6`\n- `3.1.2`\n- `3.1.3`\n- `3.1.4`\n- `3.2.0`\n- `3.2.1`\n- `3.2.2`\n- `3.2.3`\n\nand the following platforms:\n\n- `ubuntu-20.04`\n\n## Support for newer Ruby versions\n\nGitHub Actions is set up to gather the latest available Ruby versions with the [ruby-versions-action](https://github.com/moritzheiber/ruby-versions-action) and feed it to the build process. The plan is to run the build pipeline and update the REAMDE from a template regularly (e.g. weekly) in the future. For now this has to be done manually, so feel free to open a new issue once a new release needs to be supported (it usually takes a few minutes to trigger the pipeline and update the README).\n\n## Compiling your own image\n\nThe `Dockerfile` is set up in a way which makes it possible to compile pretty much any recent Ruby release [from the index on the ruby-lang.org website](https://cache.ruby-lang.org/pub/ruby/index.txt). The only two build arguments you need to provide are `RUBY_VERSION` (e.g. `3.1.2`) and the associated `sha256` checksum as `RUBY_CHECKSUM` (e.g. `ca10d017f8a1b6d247556622c841fc56b90c03b1803f87198da1e4fd3ec3bf2a`) of the `tar.gz` package associated with the relevant version.\n\nYou can always use the [ruby-version-checker](https://github.com/moritzheiber/ruby-version-checker-rs) container to fetch the latest available Ruby releases and their corresponding checksums:\n\n```console\n$ docker run ghcr.io/moritzheiber/ruby-version-checker\n# [...]\n[\n  {\n    \"name\": \"3.0.6\",\n    \"url\": \"https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.gz\",\n    \"sha256\": \"6e6cbd490030d7910c0ff20edefab4294dfcd1046f0f8f47f78b597987ac683e\"\n  },\n  {\n    \"name\": \"3.1.4\",\n    \"url\": \"https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz\",\n    \"sha256\": \"a3d55879a0dfab1d7141fdf10d22a07dbf8e5cdc4415da1bde06127d5cc3c7b6\"\n  },\n  {\n    \"name\": \"3.2.2\",\n    \"url\": \"https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz\",\n    \"sha256\": \"96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc\"\n  }\n]\n```\n\n\nIf you wish to pass additional compile-time options you can use the build argument `ADDITIONAL_FLAGS` (e.g. to enable YJIT support for Ruby \u003e= `3.2.x`):\n\n```console\n$ docker build \\\n  --build-arg RUBY_VERSION=\"3.1.4\" \\\n  --build-arg RUBY_CHECKSUM=\"a3d55879a0dfab1d7141fdf10d22a07dbf8e5cdc4415da1bde06127d5cc3c7b6\" \\\n  --build-arg ADDITIONAL_FLAGS=\"--enable-yjit\" \\\n  -t ruby-jemalloc:3.1.4-slim .\n```\nThe `Dockerfile` uses [the official Ruby `slim` image](https://hub.docker.com/_/ruby) by default, but you can also use your own base image by passing the build argument `IMAGE_NAME`:\n\n```console\n$ docker build \\\n  --build-arg RUBY_VERSION=3.1.4 \\\n  --build-arg RUBY_CHECKSUM=a3d55879a0dfab1d7141fdf10d22a07dbf8e5cdc4415da1bde06127d5cc3c7b6 \\\n  --build-arg IMAGE_NAME=ubuntu:22.04 \\\n  -t ruby-jemalloc:3.1.4-ubuntu-22.04 .\n```\n_Note: Ruby `3.4.1-slim` is the default when building the Docker image without any build arguments._\n\n## Tests\n\nThe tests are run using [`goss`](https://github.com/aelsabbahy/goss):\n\n```console\ndgoss run -ti ruby-jemalloc\n```\n\nYou can specify the Ruby version to test for by passing `RUBY_VERSION` as a variable:\n\n```console\ndgoss run -ti -e RUBY_VERSION=3.4.1 ruby-jemalloc\n```\n\n_Note: `3.4.1` is the default. And don't forget to also pass the correct `RUBY_CHECKSUM`._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoritzheiber%2Fruby-jemalloc-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoritzheiber%2Fruby-jemalloc-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoritzheiber%2Fruby-jemalloc-docker/lists"}