Docker超初級編　コンテナ構築とrailsのcreateとmigrate実行

ビルド

```docker:docker-compose
calculate_calorie_app % docker-compose build
[+] Building 137.4s (16/16) FINISHED                                            
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 558B                                       0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/ruby:2.6.5              3.8s
 => [ 1/11] FROM docker.io/library/ruby:2.6.5@sha256:651078e89471c305676  57.2s
 => => resolve docker.io/library/ruby:2.6.5@sha256:651078e89471c30567685d  0.0s
 => => sha256:41ebfd3d2fd0de99b1c63aa36a507bf5555481d06e5 7.81MB / 7.81MB  9.1s
 => => sha256:b998346ba308e3362a85c7bf7faed28d0277c6820 10.00MB / 10.00MB  7.2s
 => => sha256:f15005b0235fa8bd31cc6988c4f2758016fe412d 50.38MB / 50.38MB  20.2s
 => => sha256:651078e89471c30567685dce4caa321adf1f846b353 1.65kB / 1.65kB  0.0s
 => => sha256:53560b05e51bfe022cc25a29086aa92dceb98523d38 2.00kB / 2.00kB  0.0s
 => => sha256:ad10dfbc638bf737789e277768d9cc49ddbef72b74d 7.13kB / 7.13kB  0.0s
 => => sha256:f01ec562c947a8ca1b168415da6a4a8f8920808f 51.79MB / 51.79MB  25.6s
 => => sha256:2447a2c119076510a07d71cfcec029fceac2e5 192.17MB / 192.17MB  47.0s
 => => sha256:1915e6344d7f76a07a4e6216b33683b8d6f6b544276f07 200B / 200B  21.4s
 => => extracting sha256:f15005b0235fa8bd31cc6988c4f2758016fe412d696e81ae  3.4s
 => => sha256:6ea7f301ab4557bbf8408fc56a27b9c5a1d8bd64 21.48MB / 21.48MB  28.7s
 => => extracting sha256:41ebfd3d2fd0de99b1c63aa36a507bf5555481d06e571d84  0.6s
 => => extracting sha256:b998346ba308e3362a85c7bf7faed28d0277c68203696134  0.4s
 => => sha256:0c79fcaf0109fa1c03573e177b1f6e19a9bd9f9a19ccde 144B / 144B  25.9s
 => => extracting sha256:f01ec562c947a8ca1b168415da6a4a8f8920808f9b5d6f42  3.9s
 => => extracting sha256:2447a2c119076510a07d71cfcec029fceac2e59eea21fc7b  8.6s
 => => extracting sha256:1915e6344d7f76a07a4e6216b33683b8d6f6b544276f079e  0.0s
 => => extracting sha256:6ea7f301ab4557bbf8408fc56a27b9c5a1d8bd648aef8b5b  0.7s
 => => extracting sha256:0c79fcaf0109fa1c03573e177b1f6e19a9bd9f9a19ccdef7  0.0s
 => [internal] load build context                                          0.1s
 => => transferring context: 345.96kB                                      0.0s
 => [ 2/11] RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -   10.5s
 => [ 3/11] RUN apt-get update -qq   && apt-get install -y nodejs --no-in  8.5s
 => [ 4/11] RUN npm install -g yarn                                        2.3s
 => [ 5/11] RUN mkdir /app                                                 0.3s
 => [ 6/11] WORKDIR /app                                                   0.0s
 => [ 7/11] COPY Gemfile /app/Gemfile                                      0.0s
 => [ 8/11] COPY Gemfile.lock /app/Gemfile.lock                            0.0s
 => [ 9/11] RUN gem install bundler && bundle install                     52.2s
 => [10/11] COPY yarn.lock /app/yarn.lock                                  0.0s
 => [11/11] RUN yarn install                                               0.6s
 => exporting to image                                                     1.8s
 => => exporting layers                                                    1.8s
 => => writing image sha256:b7114d4b4251e71bd943f5d19634d863e07381030f7ef  0.0s
 => => naming to docker.io/library/calculate_calorie_app_rails             0.0s
```

クリエイト

```docker:docker-compose
calculate_calorie_app % docker-compose exec rails bash
root@a31907816406:/app# rake db:create
Created database 'calculate_calorie_app_development'
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Couldn't create 'calculate_calorie_app_test' database. Please check your configuration.
rake aborted!
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect'
/usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/mysql2_adapter.rb:24:in `new'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/mysql2_adapter.rb:24:in `mysql2_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/connection_handling.rb:189:in `connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/mysql_database_tasks.rb:8:in `connection'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/mysql_database_tasks.rb:16:in `create'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:126:in `create'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:185:in `block in create_current'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:479:in `block (2 levels) in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:476:in `each'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:476:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:475:in `each'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:475:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/tasks/database_tasks.rb:184:in `create_current'
/usr/local/bundle/gems/activerecord-6.0.3.7/lib/active_record/railties/databases.rake:39:in `block (2 levels) in <main>'
/usr/local/bundle/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
```

マイグレート

```docker:コンテナ内で
root@a31907816406:/app# rake db:migrate
== 20210611011005 DeviseCreateUsers: migrating ================================
-- create_table(:users)
   -> 0.0205s
-- add_index(:users, :email, {:unique=>true})
   -> 0.0263s
-- add_index(:users, :reset_password_token, {:unique=>true})
   -> 0.0220s
== 20210611011005 DeviseCreateUsers: migrated (0.0705s) =======================

== 20210611115003 CreateProfiles: migrating ===================================
-- create_table(:profiles)
   -> 0.0276s
== 20210611115003 CreateProfiles: migrated (0.0278s) ==========================

== 20210612022515 CreateCircles: migrating ====================================
-- create_table(:circles)
   -> 0.0305s
== 20210612022515 CreateCircles: migrated (0.0323s) ===========================

== 20210616101834 CreateCookedFoods: migrating ================================
-- create_table(:cooked_foods)
   -> 0.0377s
== 20210616101834 CreateCookedFoods: migrated (0.0383s) =======================

== 20210620124333 CreateHomeCookedMeals: migrating ============================
-- create_table(:home_cooked_meals)
   -> 0.0248s
== 20210620124333 CreateHomeCookedMeals: migrated (0.0260s) ===================

== 20210623073049 CreateFridges: migrating ====================================
-- create_table(:fridges)
   -> 0.0199s
== 20210623073049 CreateFridges: migrated (0.0218s) ===========================

== 20210623073520 CreateCookings: migrating ===================================
-- create_table(:cookings)
   -> 0.0223s
== 20210623073520 CreateCookings: migrated (0.0225s) ==========================

== 20210627054917 CreateFoods: migrating ======================================
-- create_table(:foods)
   -> 0.0203s
== 20210627054917 CreateFoods: migrated (0.0204s) =============================

== 20210627063024 CreateCookingFoods: migrating ===============================
-- create_table(:cooking_foods)
   -> 0.0342s
== 20210627063024 CreateCookingFoods: migrated (0.0343s) ======================

== 20210703023622 CreateFoodStuffs: migrating =================================
-- create_table(:food_stuffs)
   -> 0.0245s
== 20210703023622 CreateFoodStuffs: migrated (0.0247s) ========================

root@a31907816406:/app# rake db:seed
root@a31907816406:/app# exit
exit
maedatakuo@maedatakudainoMacBook-Air calculate_calorie_app % docker-compose stop
Stopping calculate_calorie_app_db_1    ... done
Stopping calculate_calorie_app_rails_1 ... done
```