こんにちは。Takitaです。
dockerで起動したmysqlコンテナにSequel Proで接続するときにハマったのでやり方をメモします。
この記事は、 dockerでrailsを動かす のAppendix的な立ち位置です。
上記の記事からは、ports / MYSQLDATABASE / MYSQLUSER / MYSQL_PASSWORD を追加しています。
portsだけ追記すればSequel Proから接続できそうですが、その場合の動作は未確認です。
version: '2'
services:
db:
image: mysql:5.7
ports:
- "4306:3306" # "3306:3306" でも良いのですが、localhostですでにmysqlを利用している場合は 4306にしてください
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=your_app_name_development
- MYSQL_USER=root
- MYSQL_PASSWORD=password
web:
build: .
command: bundle exec rails server webrick -b 0.0.0.0 -p '3000'
volumes:
- .:/your_app_name
ports:
- "3000:3000"
depends_on:
- db
※ # "3306:3306" でも良いのですが、localhostですでにmysqlを利用している場合は 4306にしてください
Docker環境とローカル環境が混在していると、3306は既にローカルでMySQLが起動しているケースが多いので、ここに注意してください。
(2017年に記事を書いて2019年に再度ハマったw)
2017/11/21 追記
MYSQLALLOWEMPTY_PASSWORDでハマってしまったときの解決方法について書きました。
dockerのmysqlにMYSQLALLOWEMPTY_PASSWORDをつけるとSequelProなどのクライアントアプリからmysqlにつなげない