Skip to content

Working Rails 7 demo application without JavaScript bundling, running in Docker. No node.js or webpack.

Notifications You must be signed in to change notification settings

axeldeveloper/ror7-on-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby

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:

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

Stimulus

  • This file is auto-generated by

    ./bin/rails stimulus:manifest:update

  • Run that command whenever you add a new controller or

create them with

  ./bin/rails generate stimulus controllerName

https://dev.to/jnchito/how-to-customize-devise-for-rails-70-and-turbo-ih

CSS tailwind

https://dev.to/aquadrehz/rails-70-demo-with-hotwire-and-tailwind-4b3d

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

erros no docker

sudo chown -R $(whoami) ~/.docker

Initial setup

$ cp .env.example .env

 DOCKER_BUILDKIT=1 docker build .

$ docker compose build

 docker-compose up --scale db=1


# erros comusn no docker
# open /Users/axel/.docker/buildx/current: permission denied
# export DOCKER_BUILDKIT=0
# sudo chown -R $(whoami) ~/.docker

$ docker compose run --rm web bin/rails db:setup
$ docker-compose run --rm -e RAILS_ENV=development web bin/rails db:migrate

docker compose run --rm web bin/rails generate devise User

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
$ docker compose run --rm web bundle exec rspec spec/models/user_spec.rb

Updating gems

docker compose run --rm web bundle update
docker compose up --build

Production build

(adjust tags as needed)

DOCKER_BUILDKIT=1 docker build --tag rails-on-docker --file production.Dockerfile . --load

With legacy builder (no BuildKit)

docker build --tag rails-on-docker --file production.Dockerfile .

Deployment

This app can be hosted wherever Ruby is supported and PostgreSQL databases can be provisioned.

Render

Deploy to 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

Rails 7 with importmaps

Rails 7 with hotwire

Author

Ryan Williams

About

Working Rails 7 demo application without JavaScript bundling, running in Docker. No node.js or webpack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 45.0%
  • CSS 25.8%
  • HTML 24.5%
  • Dockerfile 2.4%
  • JavaScript 1.9%
  • Shell 0.4%