- Docker Images
- Environment Variables
- Build arguments
- Changelog
- Gems
- HTTP server
- Crond
- SSHD
- Adding SSH key
- Complete Ruby stack
- Orchestration Actions
Use image revision tags such as wodby/ruby:4-rN to select a Wodby image revision.
Major and minor tags use the repository release number, starting at r0. Full-version tags such as
wodby/ruby:4.0.7-r0 start at r0 for each exact upstream version.
Every published versioned revision tag has a matching annotated Git tag pointing to its release commit.
Existing tags remain available after support for their major or minor version ends.
See release tags for available revisions and the image revision policy for upgrade guidance.
Previously published image tags remain available.
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)
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)
Same as -dev but the default user/group wodby has uid/gid 501/20 to match the macOS default user/group ids.
All images built for linux/amd64, -dev-macos images additionally built for linux/arm64
| 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 |
| 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.
For changes in each image revision, see the release notes.
To install gems with native extensions use -dev image variants that contain required dev packages.
Puma is the default HTTP server, you can configure it via PUMA_ env vars.
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.
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
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
You can add a private SSH key to the container by mounting it to /home/wodby/.ssh/id_rsa
See https://github.com/wodby/docker4ruby
Usage:
make COMMAND [params ...]
commands:
check-ready [host max_try wait_seconds delay_seconds]
files-import source
files-link public_dir
Build with the Makefile to use the base image digests in base-images.mk. Local
builds and CI resolve the same version and variant to the same multi-platform
image. A version without a pin fails before the build starts.
When adding a supported base version or variant, add its image index digest to
base-images.mk. For a custom build, override BASE_IMAGE with a complete
repository:tag@sha256:... reference.