Ruby Docker Container Images
April 3, 2026 · View on GitHub
Table of Contents
- Docker Images
- Environment Variables
- Build arguments
- Changelog
- Gems
- HTTP server
- Crond
- SSHD
- Adding SSH key
- Complete Ruby stack
- Orchestration Actions
Docker Images
❗For better reliability we release images with stability tags (wodby/ruby:4-X.X.X) which correspond to git tags. We strongly recommend using images only with stability tags.
About images:
- All images are based on Alpine Linux
- Base image: ruby
- GitHub actions builds
- Docker Hub
Supported tags and respective Dockerfile links:
4.0,4,latest(Dockerfile)3.4,3(Dockerfile)3.3(Dockerfile)4.0-dev,4-dev,dev(Dockerfile)3.4-dev,3-dev(Dockerfile)3.3-dev(Dockerfile)4.0-dev-macos,4-dev-macos(Dockerfile)3.4-dev-macos,3-dev-macos(Dockerfile)3.3-dev-macos(Dockerfile)
-dev
Images with -dev tag have the following additions:
sudoallowed for all commands forwodbyuser- dev package added for additional native extensions compilation
nodejspackage added (required by rails)
-dev-macos
Same as -dev but the default user/group wodby has uid/gid 501/20 to match the macOS default user/group ids.
Supported architectures
All images built for linux/amd64, -dev-macos images additionally built for linux/arm64
Environment Variables
| Variable | Default value |
|---|---|
GIT_USER_EMAIL | wodby@example.com |
GIT_USER_NAME | wodby |
PUMA_DIRECTORY | /usr/src/app |
PUMA_ENVIRONMENT | development |
PUMA_PRELOAD_APP | |
PUMA_PRUNE_BUNDLER | |
PUMA_QUIET | |
PUMA_RACKUP | /usr/src/app/config.ru |
PUMA_TAG | |
PUMA_THREADS | 0, 16 |
PUMA_WORKER_BOOT_TIMEOUT | 60 |
PUMA_WORKER_TIMEOUT | 60 |
PUMA_WORKERS | 2 |
RAILS_ENV | development |
SSH_DISABLE_STRICT_KEY_CHECKING | |
SSH_PRIVATE_KEY | |
SSHD_GATEWAY_PORTS | no |
SSHD_HOST_KEYS_DIR | /etc/ssh |
SSHD_LOG_LEVEL | INFO |
SSHD_PASSWORD_AUTHENTICATION | no |
SSHD_PERMIT_USER_ENV | no |
SSHD_USE_DNS | yes |
UNICORN_CHECK_CLIENT_CONNECTION | false |
UNICORN_DEBUG | |
UNICORN_PRELOAD_APP | true |
UNICORN_RUN_ONCE | true |
UNICORN_TIMEOUT | 30 |
UNICORN_WORKER_PROCESSES | 4 |
UNICORN_WORKING_DIRECTORY | /usr/src/app |
Build arguments
| Argument | Default value |
|---|---|
RUBY_DEV | |
WODBY_GROUP_ID | 1000 |
WODBY_USER_ID | 1000 |
Change WODBY_USER_ID and WODBY_GROUP_ID mainly for local dev version of images, if it matches with existing system user/group ids the latter will be deleted.
Changelog
Changes per stability tag reflected in git tags description under releases.
Gems
To install gems with native extensions use -dev image variants that contain required dev packages.
HTTP server
Puma
Puma is the default HTTP server, you can configure it via PUMA_ env vars.
Unicorn
To use Unicorn as your HTTP server override the default container command to /etc/init.d/unicorn. You can configure it via UNICORN_ env vars.
Crond
You can run Crond with this image changing the command to sudo -E crond -f -d 0 and mounting a crontab file to ./crontab:/etc/crontabs/wodby. Example crontab file contents:
# min hour day month weekday command
*/1 * * * * echo "test" > /mnt/files/cron
SSHD
You can run SSHD with this image by changing the command to sudo /usr/sbin/sshd -De and mounting authorized public keys to /home/wodby/.ssh/authorized_keys
Adding SSH key
You can add a private SSH key to the container by mounting it to /home/wodby/.ssh/id_rsa
Complete Ruby stack
See https://github.com/wodby/docker4ruby
Orchestration Actions
Usage:
make COMMAND [params ...]
commands:
check-ready [host max_try wait_seconds delay_seconds]
files-import source
files-link public_dir