- Docker Images
- Environment Variables
- Build arguments
- Changelog
- Gems
- HTTP server
- Crond
- SSHD
- Adding SSH key
- Complete Ruby stack
- Orchestration Actions
❗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)
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)
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 |
[email protected] |
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.
Changes per stability tag reflected in git tags description under releases.
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