2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsのdockerコンテナのよく使うdocker-composeコマンドとMySqlコンテナの繋ぐ方法

Last updated at Posted at 2020-07-15

これは何?

こちらはdocker composerで作成したRails,MySqlコンテナ、自分がターミナルで操作するコマンドの自分用メモです。

コンテナの操作

コントローラー作成

controller_nameは自分で定義する

$ docker-compose run --rm web rails generate controller controller_name

web : docker-compose.ymlに定義したservices名

Model作成

model_nameは自分で定義する 引数にname:stringとかでnameカラムを作れます。

$ docker-compose run --rm web rails generate model model_name name:string 

Modelカラム名変更

$ docker-compose run --rm web rails generate migration rename_[変更前のカラム名]_column_to_[モデル名(複数形)]

ルーティング変更

config/routes.rbを編集後実行

$ docker-compose run --rm web rake routes

DB作り

$ docker-compose run --rm web rake db:create

マイグレーション

$ docker-compose run --rm web rake db:migrate

seed実行

$ docker-compose run --rm web rake db:seed

DB接続

コンテナへSSH接続 〜 mysqlコンテナ内でmysqlコマンド実行

SSHで接続

$ docker exec -it $MYSQL_CONTAINER_NAME bash

でコンテナ内部に入り。

$MYSQL_CONTAINER_NAME は $ docker ps で調べる($ docker-compose ps ではなく)

作成したMySQLユーザでmysqlコマンドをいれる

$ mysql -uroot -p db_name

MySql workbenchで接続

docker-compose.ymlのportを

.
.
.
ports:
      - "3306:3306"

で設定して(別のポート使うとworkbenchが接続できなくなる)、
workbenchのconnectionsの設定は以下のように

Connection Method: Standard を選択

Hostname : 127.0.0.1
Port : 3306(docker run時の特に指定してなければ)
Username : root
Password : docker run時の指定した環境変数

#参考資料
serverコンテナ参考
dbコンテナ参考
seedとは
$docker run 公式説明

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?