ドッカー画像で2つの異なるnodejsアプリケーションを実行するにはどうすればよいですか? 2つの異なるCMD [ "node", "app.js"]
とCMD [ "node", "otherapp.js"]
は動作しません。CMD
ディレクティブが Dockerfileに1つしか存在しない可能性があります。1つのドッカー画像で2つのnodejsアプリケーションを実行中
1
A
答えて
3
ドッカーイメージ内のすべてのNodeJSアプリケーションを処理するエントリポイントプロセスとしてpm2
を使用することをお勧めします。これの利点は、pm2
がessential in dockerである適切なプロセスマネージャとして処理できることです。他の有用な機能は、ロードバランシング、何らかの理由でメモリが多すぎるか死ぬかを再起動するアプリケーションの再起動、およびログ管理です。
は、ここで私は今、いくつかの時間のために使用してきましたDockerfile
です:CMD
で
#A lightweight node image
FROM mhart/alpine-node:6.5.0
#PM2 will be used as PID 1 process
RUN npm install -g [email protected]
# Copy package json files for services
COPY app1/package.json /var/www/app1/package.json
COPY app2/package.json /var/www/app2/package.json
# Set up working dir
WORKDIR /var/www
# Install packages
RUN npm config set loglevel warn \
# To mitigate issues with npm saturating the network interface we limit the number of concurrent connections
&& npm config set maxsockets 5 \
&& npm config set only production \
&& npm config set progress false \
&& cd ./app1 \
&& npm i \
&& cd ../app2 \
&& npm i
# Copy source files
COPY . ./
# Expose ports
EXPOSE 3000
EXPOSE 3001
# Start PM2 as PID 1 process
ENTRYPOINT ["pm2", "--no-daemon", "start"]
# Actual script to start can be overridden from `docker run`
CMD ["process.json"]
process.json
ファイルがdescribed here
+0
ありがとう、私はそれを調べます。 – Oleg
関連する問題
- 1. python3 nodejsドッカー画像
- 2. java eeアプリケーションでMavenを実行するドッカー画像
- 3. 2つのセロリプロセス実行中
- 4. /bin/sh:1:apock:ドッカー画像を作成中に見つかりません
- 5. 2つのドッカー画像を結合する
- 6. ドッカー画像をコンテナとして実行
- 7. 1つのボタンで2つのアクション(画像の変更)
- 8. Base64の画像データを持つNodeJSでの画像操作
- 9. 同じサイズの2つの画像ビュー、1つはwrap_contentです
- 10. 2つの画像を1つの画像として読むPython
- 11. 接続のOpsCenterとdatastax剤2つのドッカー容器で実行
- 12. 2つの画像を使用して1つの画像ビューで画像を拡大/縮小する方法
- 13. 1つのボタンで2つの画像をキャプチャする方法 - 前面に1つ、背面に1つのカメラ
- 14. Androidのレイアウト:行ごとに1つの画像と2つのEditTextビュー
- 15. nginxドッカー画像の中にカールをインストール
- 16. 2つのアプリの間に1つの画像カタログ
- 17. 2つのURL画像を1つに分割する
- 18. 1つのtomcatに2つのアプリケーションをデプロイして実行する
- 19. 2つの画像の画像比較
- 20. 1つの更新ステートメントで2つのクエリを実行する
- 21. 1つのApacheサーバーで2つのWebサイトを実行
- 22. symfonyのCronjobをドッカーで実行中
- 23. 1つのHTMLファイルを持つ2つの画像を切り替える
- 24. 1つのUIButtonタッチで実行中のアプリケーションをすべて閉じますか?
- 25. 1つのアプリケーションの2つのリソースセット
- 26. 2つのアップロードコントロールの画像を1つのビューで表示するMVC
- 27. Android:1つの画面で2つの異なるビューでアプリを実行する(分割画面?)
- 28. 2つのタイルと1つのアプリケーション
- 29. 2つの画像と2つのonClickListenersを持つImageView?
- 30. 1つのボタンで2つの画像を切り替える方法
であるあなたは、「起動スクリプト」内の両方のノードのアプリの開始コマンドをラップすることができ - これについては、[Dockerチュートリアル](http://ishlema.co.za/running-services-when-docker-container-starts/)を参照してください - 私はあなたがそれが役に立つと思う。 – ishmaelMakitla
あなたは以下の解決策が与えられますが、なぜそれを望みますか?このように2つを結合することのメリットは何ですか? –
ほとんどの場合、それぞれのアプリを独自のイメージで実行する方が良いと私は同意します。しかし、私たちの場合、両方のアプリケーションが1つのネットワーク上で動作することを保証する他の方法はありませんでした。ストーリーはあまりにも長いので、SOのコメントはありません。私たちはそれらをある日に分割してもらいたい – Mchl