Created
April 19, 2024 12:15
-
-
Save dfop02/80d9f72cf7e05fbf2e2a9240867f4e5d to your computer and use it in GitHub Desktop.
Manage docker from Rails using rake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Change "container_name" for the name of your app container created in docker-compose.yml | |
desc "Manage docker from rails" | |
namespace :docker do | |
desc "Docker build container" | |
task build: :environment do | |
system "docker-compose -f #{Rails.root.join('docker-compose.yml')} build" | |
end | |
desc "Docker up container" | |
task up: :environment do | |
system "docker-compose up" | |
end | |
desc "Docker build and up container" | |
task buildup: :environment do | |
Rake::Task['docker:build'].invoke | |
Rake::Task['docker:up'].invoke | |
end | |
desc "Open rails console on Docker container" | |
task console: :environment do | |
system "docker-compose run container_name rails c" | |
end | |
desc "Run rspec on container" | |
task rspec: :environment do | |
system "docker-compose run -e \"RAILS_ENV=test\" container_name rspec" | |
end | |
desc "Open a bash on Docker container for debug" | |
task bash: :environment do | |
system "docker-compose run --entrypoint=sh container_name" | |
end | |
desc "Install Docker" | |
task install: :environment do | |
installed = system "docker info --format '{{.OperatingSystem}}' | grep -q 'Docker Desktop'" | |
if installed | |
puts "Docker already installed." | |
else | |
puts "Installing Docker..." | |
system "brew install --cask docker" | |
puts "Installing Docker Compose..." | |
system "brew install docker-compose" | |
puts "Done!" | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment