Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

ではでは~

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away