Bumps [pg](https://github.com/ged/ruby-pg) from 1.5.6 to 1.5.7. - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.md) - [Commits](https://github.com/ged/ruby-pg/compare/v1.5.6...v1.5.7) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Start here: https://github.com/ryanwi/rails7-on-docker/generate
Rails 7 on Docker demo application
This app demonstrates Rails 7 with PostgreSQL, import maps, turbo, stimulus and hotwire, all running in Docker.
NOTE: There is also an example Rails 6 application working in Docker with Webpacker
Features
- Rails 7
- Ruby 3
- Dockerfile and Docker Compose configuration
- PostgreSQL database
- Redis
- GitHub Actions for
- tests
- Rubocop for linting
- Security checks with Brakeman and bundler-audit
- Building and testing of a production Docker image
- Dependabot for automated updates
Requirements
Please ensure you are using Docker Compose V2. This project relies on the docker compose command, not the previous docker-compose standalone program.
https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command
Check your docker compose version with:
% docker compose version
Docker Compose version v2.10.2
Initial setup
cp .env.example .env
docker compose build
docker compose run --rm web bin/rails db:setup
Running the Rails app
docker compose up
Running the Rails console
When the app is already running with docker-compose up, attach to the container:
docker compose exec web bin/rails c
When no container running yet, start up a new one:
docker compose run --rm web bin/rails c
Running tests
docker compose run --rm web bin/rspec
Updating gems
docker compose run --rm web bundle update
docker compose up --build
Production build
(adjust tags as needed)
with BuildKit
DOCKER_BUILDKIT=1 docker build --tag rails-on-docker --load .
Test the image can be used and Rails starts up, use a fake key for testing purposes only:
docker run --rm --env SECRET_KEY_BASE=dummy rails-on-docker
With legacy builder (no BuildKit)
docker build --tag rails-on-docker .
Test the image can be used and Rails starts up, use a fake key for testing purposes only:
docker run --rm --env SECRET_KEY_BASE=dummy rails-on-docker
Deployment
This app can be hosted wherever Ruby is supported and PostgreSQL databases can be provisioned.
Render
NOTE: You will need to generate a production secret with bin/rails secret and set it as the SECRET_KEY_BASE environment variable.
Credits/References
Rails with Docker
- Quickstart: Compose and Rails
- Docker Rails Samples
- Docker for Rails Developers Build, Ship, and Run Your Applications Everywhere
- Ruby on Whales: Dockerizing Ruby and Rails development
- Rails generator to produce Dockerfiles and related files
- docker init
- Rails 7.1 Dockerfile Generator Template
Rails 7 with importmaps
Rails 7 with hotwire
- Stimulus 3 + Turbo 7 = Hotwire 1.0
- Turbo 7
- Rails 7 will have three great answers to JavaScript in 2021+
- Hotwire Turbo Replacing Rails UJS
Author
Ryan Williams