Dockerって便利だよね。Railsも便利。
でも、環境構築が他と(nodeやpython,go)比べてめんどくさいです。
とりあえず開発用、デモで、簡単なAPIサーバーをさくっと作りたいってなると不向きです。
概要
Rails環境をすぐにつくりたい!
でも、「Railsに慣れているので、それでさくっと作りたい!」って考える人もいます。
そういう人は、「Docker Rails 開発環境」なんてググってもだめです。
ほとんどの記事は、Rails + Nginx + unicorn + MySQL + etc...とかなんとかばっかりで
docker-compose使え!とか、docker buildの後にrailsプロジェクトを新規で作るコマンド実行しろ!
てな感じです。
DockerhubにもOfficialでRailsのイメージはあるんだけど、
COPYがあるから、結局どっかでRailsプロジェクトを作らないといけない。
1 |
COPY . . |
(Railsプロジェクトをどこで用意するんじゃい!)
違うんだ!
僕はただ、Docker run で即起動するRailsがほしいんだ!
なので今回は、とりあえず即動く、
即開発ができるRails on DockerのImageを用意しました。
Rails5をDockerで即起動する手順
下記をこぴぺすればCentOS7でRails5が速攻動きます。
これで、環境構築の手間は消滅や!
1 2 3 4 5 6 7 8 9 10 |
# docker をinstall してsudoなしで起動できるようにする # ref https://omohikane.com/docker_command_not_sudo/ sudo yum install -y docker sudo groupadd docker sudo usermod -aG docker $USER sudo systemctl enable docker sudo systemctl start docker # rails project をrun!!! docker run --name tmp-rails --rm -d -v `pwd`/:/myapp -p 3000:3000 noffuy/tmp_rails_on_docker:latest |
image内のファイル構成は下記の感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
noffuy$ tree . ├── Dockerfile ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── app │ ├── assets │ │ ├── config │ │ │ └── manifest.js │ │ ├── images │ │ ├── javascripts │ │ │ ├── application.js │ │ │ ├── cable.js │ │ │ └── channels │ │ └── stylesheets │ │ └── application.css │ ├── channels │ │ └── application_cable │ │ ├── channel.rb │ │ └── connection.rb │ ├── controllers │ │ ├── application_controller.rb │ │ └── concerns │ ├── helpers │ │ └── application_helper.rb │ ├── jobs │ │ └── application_job.rb │ ├── mailers │ │ └── application_mailer.rb │ ├── models │ │ ├── application_record.rb │ │ └── concerns │ └── views │ └── layouts │ ├── application.html.erb │ ├── mailer.html.erb │ └── mailer.text.erb ├── bin │ ├── bundle │ ├── rails │ ├── rake │ ├── setup │ ├── update │ └── yarn ├── config │ ├── application.rb │ ├── boot.rb │ ├── cable.yml │ ├── credentials.yml.enc │ ├── database.yml │ ├── environment.rb │ ├── environments │ │ ├── development.rb │ │ ├── production.rb │ │ └── test.rb │ ├── initializers │ │ ├── application_controller_renderer.rb │ │ ├── assets.rb │ │ ├── backtrace_silencers.rb │ │ ├── content_security_policy.rb │ │ ├── cookies_serializer.rb │ │ ├── filter_parameter_logging.rb │ │ ├── inflections.rb │ │ ├── mime_types.rb │ │ └── wrap_parameters.rb │ ├── locales │ │ └── en.yml │ ├── puma.rb │ ├── routes.rb │ ├── spring.rb │ └── storage.yml ├── config.ru ├── db │ └── seeds.rb ├── lib │ ├── assets │ └── tasks ├── log ├── package.json ├── public │ ├── 404.html │ ├── 422.html │ ├── 500.html │ ├── apple-touch-icon-precomposed.png │ ├── apple-touch-icon.png │ ├── favicon.ico │ └── robots.txt ├── run_rails.sh ├── storage ├── test │ ├── application_system_test_case.rb │ ├── controllers │ ├── fixtures │ │ └── files │ ├── helpers │ ├── integration │ ├── mailers │ ├── models │ ├── system │ └── test_helper.rb ├── tmp └── vendor |
これで、とりあえずすぐ動くRailsを用意できます。
コントローラー追加したりなんだりは、このあとじっくりやればよろしい。
じゃあね〜〜〜〜。