No.394
【Docker】Mysqlをパイプで使うときのtty問題
時空を超えてあなたは一体何度我々の前に立ちはだかってくるというのだ! TTY!
Mysqlに限らないけどdockerを使ってるとしょっちゅう出てくるTTY
問題。
the input device is not a TTY
そんなときはだいたいTTY
を無効化してやると解決できる。
解決法
-T
オプションで疑似ターミナル割り当てを無効化できる。
Docs » Docker Compose » コマンドライン・リファレンス » run
docker-compose exec -T コンテナ コマンド
Mysqlでパイプを使ってインポートする場合はこんな感じ。
docker-compose exec -T mysq_container mysql --default-character-set=utf8mb4mb4 database_name < sql.txt