2017-11-06 19 views
0

ドッカーに2本のレールアプリを持っていて、同時に起動するのはdocker-compose upですが、別のポートで各アプリを起動します。dockerfile CMD - 別のポートでサーバを起動

私は1つの共有docker-compose.ymlを使って、各アプリケーションごとに異なるドッカーファイルを持っています。ドッカーの作成には、アプリごとに1つずつ2つのエントリがあります。ここで

Dockerfileの一例ですが、いくつかの理由でそのアクセスできないか、その指定されたポートで起動しませ:

Expose port to the Docker host, so we can access it 
# from the outside. 
EXPOSE 5000 

# Configure an entry point, so we don't need to specify 
# "bundle exec" for each of our commands. 
ENTRYPOINT ["bundle", "exec"] 

# The main command to run when the container starts. Also 
# tell the Rails dev server to bind to all interfaces by 
# default. 
CMD ["bundle", "exec", "rails", "server”,”-p”, “5000”, "-b", "0.0.0.0"] 

CMDの構文であり問題ですか?

ドッキングウィンドウ-コンは、私はコンテナ内のポート5000へのホストアクセスのポート5000を許可しています示唆して次のスニペットを持っていますが、サーバーがポート5000上で実行されていないようだ。

ports: 
    - "5000:5000" 

何か行方不明?

答えて

0
  1. ホストからの曲がりに問題がありますか?あるコンテナで他の人と話すことができない問題
  2. ホストネットワーキングを使用していますか?
  3. あなたがドッキングウィンドウ-compose.yml
  4. にポートマッピングを指定している場合は、EXPOSEを使用する必要はありません、あなたのサーバが指定したホスト/ポート上で実行されている絶対によろしいですか?

私はあなたのCMDに問題を見ることができないが、それはCMDENTRYPOINTの両方を使用することは非常に珍しいです。なぜここでそれをやったのか分かりますが、私はENTRYPOINTを試して実験します。最後に、サーバーが実際にホスト/ポート上で実行されていることをデモストレーションすると役立ちます。あなたは

docker run -it "my/image" bash 
> rails s -p 5000 -b 0.0.0.0 -d 
> curl 0.0.0.0:5000 # should show your landing page if the server is indeed running on port 5000. 
+0

おかげで、それはembarassingly私のドッキングウィンドウ-コンファイルは、ポートが変更に必要なことでCMDを有していた溶液に私を導くように私はこれを受け入れています試してみて、 – user3437721

+0

更新します試すことができます。 – user3437721

関連する問題