Dockerでコマンドを忘れた時に見るやつ

コンテナ関連

コンテナの作成

 docker-compose build

コンテナの中身を削除

docker-compose down

コンテナの起動(web serverの起動)

docker-compose.ymlを使って起動します

構文

 docker-compose up [option] [service名]

通常起動

docker-compose up

rails(サービス名)起動

docker-compose up rails

バックグラウンドで実行

docker-compose up -d 
docker-compose up -d rails

buildも実行

docker-compose up -build

buildをしない

 docker-compose up -no-build

コンテナ起動関連

docker-compose start
docker-compose stop

#Gemfileの更新をしたら、実施する
docker-compose restart

コンテナのタイムアウトを秒指定

 docker-compose up -t

サービスの数を指定

docker-compose up -scale SERVICE=サービス数

データベース関連

データベースを作成するコマンド

docker-compose run web bundle exec rake db:create

モデルを追加するコマンド

docker-compose run web bundle exec rails g model task user:references name:string cotent:text

モデルを削除したいときのコマンド

docker-compose run web bundle exec rails destroy model task

モデルにカラムを追加するには?

docker-compose run web bundle exec rails g migration AddYYYToXXX カラム名:データ型 (XXXはテーブル名、YYYはカラム名) 

docker-compose run web bundle exec rails g migration AddDetailsToLists event:text respect:text disdain:text boss:text guidance:text

複数追加のときはAddDetailsToListsのようにカラム名は任意で良い(単体の場合は追加したいカラム名)

↑のようにマイグレーションファイルが生成される

マイグレートする

docker-compose run web bundle exec rake db:migrate

↑のようにマイグレート成功していればOK!

データベースを削除する場合はこうする

class CreateMacs < ActiveRecord::Migration[5.1]
 def change drop_table :macs
 end
end

マイグレートするためのコマンド

docker-compose exec web bundle exec rake db:migrate

1つ前にロールバックしたいときのコマンド

docker-compose exec web bundle exec rails db:rollback

seedファイルを使う時

まずはリセット

docker-compose run web bundle exec rails db:migrate:reset

データベース上にサンプルユーザーを生成する

docker-compose run web bundle exec rails db:seed

コントローラー関連

Docker環境下でのコントローラ作成方法(コントローラは複数形で記述します)

docker-compose exec web rails g controller tasks create destroy

ビューファイルを生成したくない時(–skip-template-engine: ビューファイルをスキップする設定)

docker-compose exec web rails g controller macs create destroy --skip-template-engine

コントローラーを削除したいとき

docker-compose exec web rails destroy controller tasks

デバッグ関連(実用例含む)

サーバーを起動(-dでバックグラウンドにする)

docker-compose up -d

接続するコンテナを確認するコマンド

docker ps

コンテナに接続するコマンド

docker attach lifehack_web_1

newメソッドにbinding.pryを追加

class TasksController < ApplicationController
  def new
    @task = Task.new
    binding.pry
  end
end

http://localhost:3000/tasks/newを開くかリロードして

ターミナルが↑のような表示になったらOK

@taskにいろいろ値を入れてみる

@task.title = 'task1'

@task.content = 'content'

@task.priority = 3

exitでデバッガーから抜けると

先程入力したオブジェクトがフォームにセットされた!

使い終わったらnewメソッドのbinding.pryを消して

class TasksController < ApplicationController
  def new
    @task = Task.new
  end
 end

コントロールキー^を押しながらp,qの順に押すとアタッチが解除できる!

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です