1

Windows で docker を使用しており、src ディレクトリは(COPY ではなく) docker コンテナー内のネットワーク共有としてマウントされています。したがって/var/app/server、ドッカーの内部には、実際にはネットワーク共有があり、ホスト上の実際の場所は ですC:\...project\server。[補足として、docker が Linux でどのように機能するかについてはよくわかりません。Linux でのマウントにもネットワーク共有をまだ使用しているのでしょうか? そうでない場合、これは単にWindowsの問題である可能性があるため]

を使用するbabel-watchを使用していmkfifoます.dockerコンテナ(VM)内で実行されているため、mkfifoはそのネットワーク共有ディレクトリにファイルパイプを作成できません。[補足: babel-watch は、mkfifo.exe ユーティリティを持つ cygwin を使用して docker 外部の Windows で実際に動作します]

server_1  | mkfifo: cannot create fifo `/var/app/server/116521-16-pz2v9g.ma216skyb9': Operation not permitted
server_1  | Unable to create named pipe with mkfifo. Are you on linux/OSX?

これに対する回避策はありますか?

私はbabel-watchソースを編集して、mkfifoが代わりにファイルを作成するよう/var/appにしようとしました/var(それはまだdockerコンテナの領域内にあります)。この方法mkfifoは実際には機能しますが、ファイルの変更はbabel-watchによって見られません。基本的に、ファイルの変更情報は、ネットワーク共有バリア/var/app/server(マウント ポイント) を/var/app(docker 内の実際のディレクトリ) に伝達することができないと思います。

4

2 に答える 2

1

mkfifoLinux/OSX 環境が必要です/var/app/serverが、Windows からマウントされていました。だからうまくいきません。したがって、ボリュームをマウントするADDCOPY、マウントする代わりに

于 2016-06-21T07:31:57.340 に答える