windows環境でのdocker-composeのInteractive Modeが実行出来ないのが解決した

  • 4
    Like
  • 0
    Comment

Dockerの勉強をやってたら、docker-composeでInteractive modeが使えないということで詰まったけど解決した話です。

→現状のDockerではこの問題は解決しているのでこれをやる必要はありません。

環境

  • Windows 10 Pro 64bit
  • Cmder
  • なおdocker Toolboxを利用です。docker-composeは1.8.0を利用しておりました

問題点

docker-compose runやexecなどを行おうとすると、WindowsではInteractive modeがサポートされてないからdetachで動かしてねって返ってきます。

Interactive mode is not yet supported on Windows.
Please pass the -d flag when using `docker-compose run`.

detachモードでとりあえず動かしてたわけですが、厳しかったので以下のようなコマンドで乗り切ってました。

docker exec -it コンテナ名 composer install

調べると結構躓いた人がいるみたいです。。。私も調べてたら以下の記事にぶち当たりました。

実は次のdocker-compose バージョン1.9で解決する

実はこれ、次のバージョンの1.9で解決します。

Attach interactively on Windows by shelling out

上記がマージされた内容です。Docker for Windowsを利用している人はDOCKER_HOSTのenvを設定する必要がある模様?

まだリリースされてないけど使いたい

すでに1.9.0-rc1から上記がマージされたものが利用できます。
私が見たときはrc3が最新だったので、rc3を利用します。(すでにrc4でした

→もうリリースされたようです。Docker ToolBox側が対応したかはまだ不明です。

  1. ダウンロードは上記の1.9.0-rc3のdocker-compose-Windows-x86_64.exeを選びます。(もっと新しいバージョンが出ていたらそれを使いましょう)
  2. ダウンロードし終えたら、DockerToolboxが入っているC:\Program Files\Docker Toolboxに移動します。
  3. docker-compose.exedocker-compose.exe.oldなどにリネームしておきます
  4. docker-compose-Windows-x86_64.exedocker-compose.exeにリネーム
$ docker-compose -v
docker-compose version 1.9.0-rc3, build c1e5515

これでwindowsのdocker-composeでInteractive modeが利用できるようになりますー。
やったー!

追記

このdocker-composeの1.9に変更をするとパスの問題が出てくるらしいので、環境変数を設定しておかないとupができなくなります。
(なおこれはDockerToolboxの場合だけみたい?releaseにも書いてますが)

COMPOSE_CONVERT_WINDOWS_PATHS=1

追記その2

Docker ToolBoxのほうでは、v1.12.4からdocker-compose v1.9に対応する模様です。まだRC版ですが・・・。待つ方は待ちましょう。 v.1.12.5でdocker-compose 1.9が導入されてます。これからはそのままtoolboxを入れても動くようになってるでしょう
https://github.com/docker/toolbox/releases

ではでは~