Awesome
Ruby Docker Container Images
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:3-X.X.X
) which correspond to git tags. We strongly recommend using images only with stability tags.
About images:
- All images based on Alpine Linux
- Base image: ruby
- GitHub actions builds
- Docker Hub
Supported tags and respective Dockerfile
links:
3.3
,3
,latest
(Dockerfile)3.2
(Dockerfile)3.1
(Dockerfile)3.3-dev
,3-dev
,dev
(Dockerfile)3.2-dev
(Dockerfile)3.1-dev
(Dockerfile)3.3-dev-macos
,3-dev-macos
(Dockerfile)3.2-dev-macos
(Dockerfile)3.1-dev-macos
(Dockerfile)
-dev
Images with -dev
tag have the following additions:
sudo
allowed for all commands forwodby
user- dev package added for additional native extensions compilation
nodejs
package 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