2

localhost:8080ドッカーコンテナでノード接続(grunt-contrib-connect)Webサーバーを実行しているGruntがあります。次のコマンドでコンテナーを実行します: $ docker run --rm -it -p 8080:8080 js1972/yeoman:v3.

コンテナ内で、grunt connect タスクを で実行しgrunt developます。

私はMacを使用しているので、boot2dockerを使用しています。boot2docker ipホストの IP は 192.168.59.103 と表示されているので、ブラウザでhttp://192.168.59.103:8080を使用して接続サーバーにアクセスする必要があります。

ただし、これは機能せず、サファリがサーバーに接続できないというメッセージが表示されます。(Docker Web サイトの例のように単純な Python Web サーバーを使用すると、ポート転送が正常に機能することに注意してください。)

ここで何が問題なのですか?同じプロセスは、docker の外でも完全に機能します。localhostでConnectを実行することに関係があると感じています。--add-hosts と -p localhost:8080:8080 などのさまざまな組み合わせを試しましたが、役に立ちませんでした...

それが役立つ場合は、私の docker ファイルと gruntfile: https://dl.dropboxusercontent.com/u/7546923/Dockerfile https://dl.dropboxusercontent.com/u/7546923/Gruntfile.js

よし、ジェイソン。

4

2 に答える 2

1

Gruntfile の接続設定でホスト名の IP を変更します。

// The actual grunt server settings
connect: {
  options: {
    port: 8080,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: '0.0.0.0',
    livereload: 35729
  },

サーバーを開き、ポートを boot2docker vm にリロードします。

boot2docker poweroff # vm needs to be off to modify the network settings
VBoxManage modifyvm "boot2docker-vm" --natpf1 "containergruntserver,tcp,,8080,,8080"
VBoxManage modifyvm "boot2docker-vm" --natpf1 "containergruntreload,tcp,,35729,,35729"
boot2docker up
于 2015-02-05T00:02:49.173 に答える