/fullstaq-ruby-docker

Docker image for Ruby build from Fullstaq packages based on Debian 10, 11, and 12.

Primary LanguageDockerfile

Fullstaq Ruby Docker images

Fullstaq Ruby is a custom build of standard MRI Ruby interpreter with memory allocator replaced, security patches applied, and more goodies on the way.

These images are intended to be used while Fullstaq and Hongli Lai haven't build their own.

Sponsored by Evil Martians

Usage

Pull it directly from the quay.io registry:

docker pull quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-slim

Or use as base image in your Dockerfile:

ARG RUBY_VERSION=3.3.5-jemalloc

FROM quay.io/evl.ms/fullstaq-ruby:${RUBY_VERSION}-slim

Flavors

Ruby 3.3.5, 3.2.5, 3.1.6, and 3.0.7 with jemalloc and malloctrim are available. Images are built on top of Debian 10 (buster), 11 (bullseye), also Ruby 3.2 and newer are build on top of Debian 12 (bookworm):

# 3.3:
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-bookworm-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-bookworm
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-buster
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-bookworm-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-bookworm
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-buster

# 3.2:
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-jemalloc-bookworm-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-jemalloc-bookworm
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-jemalloc-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-jemalloc-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-jemalloc-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-jemalloc-buster
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-malloctrim-bookworm-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-malloctrim-bookworm
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-malloctrim-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-malloctrim-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-malloctrim-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.2.5-malloctrim-buster

# 3.1:
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-jemalloc-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-jemalloc-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-jemalloc-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-jemalloc-buster
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-malloctrim-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-malloctrim-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-malloctrim-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.1.6-malloctrim-buster

# 3.0:
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-jemalloc-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-jemalloc-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-jemalloc-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-jemalloc-buster
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-malloctrim-bullseye-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-malloctrim-bullseye
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-malloctrim-buster-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.0.7-malloctrim-buster

Latest patch versions for Ruby 3.3 on Debian 12 (bookworm) are also aliased with shortened tags including major and minor versions only: 3.3.5-jemalloc-bookworm → 3.3-jemalloc

docker pull quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc-slim   # Same as quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-bookworm-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3-jemalloc        # Same as quay.io/evl.ms/fullstaq-ruby:3.3.5-jemalloc-bookworm
docker pull quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim-slim # Same as quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-bookworm-slim
docker pull quay.io/evl.ms/fullstaq-ruby:3.3-malloctrim      # Same as quay.io/evl.ms/fullstaq-ruby:3.3.5-malloctrim-bookworm

For Ruby 3.2 and 3.1, short aliases for latest patch versions are made against Debian 11 (bullseye): 3.2.5-jemalloc-bullseye → 3.2-jemalloc

For Ruby 3.0, short aliases for latest patch versions are made against Debian 10 (buster): 3.0.7-jemalloc-buster → 3.0-jemalloc

Details

Ruby is installed from official APT package repository. Rbenv isn't used.

Bumping versions

After a new version of Ruby was released:

  1. Check pull requests at the https://github.com/fullstaq-ruby/server-edition/ repository and ensure that packages for the target version has been build and published (pull request adding this has been merged).

  2. Execute make bump VERSION=X.Y.Z (specify full version in X.Y.Z), it will replace previous patch version in both Github Action and README files.

  3. Commit and push changed README.md and .github/workflows/build-push.yml. Once they will reach main branch, new images will be pushed to the registry automatically.