2017-11-07 16 views
0

nginxがコンテナ内で実行されていますが、npm http-serverを実行してブラウザで表示するにはどうすればよいですか?ドッキング・コンテナnginxとnpm httpサーバー

Dockerfileは、EXPOSE 80CMD ["nginx", "-g", "daemon off;"] ルートフォルダが/var/www/

は、今私は、その後 docker run -d -p 8080:80 --name dotker dotker

は私がドッキングウィンドウコンテナの中に入るコンテナを作成することができている、 docker exec -it dotker bash

ちょうどnginxの、nodejsとNPMをインストールすることは非常に簡単です

/www/helloWorldをナビゲートして実行するhttp-server -p 8081 それはposですか?ポートがnginxに占有されているので、/helloWorldのWebページをブラウザに表示することは可能ですか?

+0

コンテナの中から 'http-server -p 8081'を実行する必要はありません。これをDockerfileで指定して8081ポートを公開することができます。 恐らくDockerfileを共有して、より良くなるようにすることができます。 – Sheshnath

+0

もっと良い方法は、異なるサービス用に別のコンテナを用意することです.1つのコンテナにnginxを入れ、別のコンテナにアプリケーションを置くことができます。[Docker-Compose](https://docs.docker.com/compose) /)を使用してサービス間で通信します。 – Sheshnath

+0

ありがとう私は見てみる – olo

答えて

0

コンテナを実行するときにサーバーを実行しません。

私はDockerfileにエントリポイントスクリプト

を追加することをお勧めしたい:docker-entrypoint.sh

COPY /docker-entrypoint.sh /docker-entrypoint.sh 
RUN chmod +x /docker-entrypoint.sh 
EXPOSE 8081 
ENTRYPOINT ["/usr/bin/tiny", "--","/docker-entrypoint.sh"] 

すべてのスクリプトを実行しています。何かのように:

http-server -p 8081 
関連する問題