2016-12-19 14 views
2

私は単純なAngularJSアプリケーションを持っています。バックエンドはサービス(外部API)のように扱うことができるので、サーバ側はまったく必要ありません。私はドッカーでそれを実行したいですが、私はここでベストプラクティスがよく分かりません。 私は何を達成するために期待していことは以下の通りです:ドッキングウィンドウは、私はnodejsで局部的にやっていたすべてのものを実行することができるはずドッキングステーション付き角度アプリ

  1. - +私のローカルマシン上で何かをインストールしなくWebPACKの/イサキ/がぶ飲みを使用してすべてのチームメンバーが基本的にすべての同じバージョンで作業していることを確認します。
  2. ドッキングウィンドウは、(そのわずか静的なコンテンツ!)簡単に生産に展開することができるように、できるだけ軽く実行する必要があります

本当の問題は、私の知る限り理解し、DEV]ドッキングウィンドウをベースとしなければならないということですマウントされたボリュームとすべてのnodejs。しかし、生産ドッカーは、静的コンテンツを提供するスーパーシンプルなnginxサーバーでなければなりません。だから私は同じコードベースを使用する2つの別々のドッカーで終わるかもしれない。これが正しい方法であるかどうかは分かりません。

誰もがこのトピックについていくつかの光を放つことができますか?ありがとう

答えて

1

あなたのアイデアは大丈夫​​です。私は一般的に、要件(dev & prod)に従ってさまざまな環境を展開するためのbashスクリプトを作成します(私にとってそれは十分柔軟です)。想定

だからあなたも作成(またはスイッチ)Dockerfileをその場でご使用の環境に応じて、これDockerfileでアプリケーションを構築することができ
sh deployApp.sh `{dev or prod}` 

deployApp.sh

bashスクリプトを作成しました。だから、あなたが必要としているだけで、あなたのプロダクト環境要件を管理することができます(webpackのバンドルなどでnginxに展開します)。 deployApp.shの作成について

例:

webpack `{if other required parameters here}` #created bundle.js etc. 

#After webpack operations , choose Dockerfile for prod or dev : 
#./prod/Dockerfile , ./dev/Dockerfile 

#check if first parameter is prod or dev 
docker build -f ./prod/Dockerfile #this will build nginx based container 
#and copy needed files&folders 

私はそのアプローチのような使用も、あなたの考えによるとちょうどアプローチです。 1回だけセットアップを作成します。また、適切であれば、別のプロジェクトを適用することもできます。

+0

なぜ私は実際にbashファイルが必要ですか?私たちは2つのドッキングファイルを手に入れました。例えば、素晴らしいドッカー作曲家を使ってdevの1つをローカルで使用し、ゲンキンと共に他の1つを使用します(あらかじめ作成されたドッカーの構成も異なるかもしれません)。ビルド/デプロイメントコンピュータでプロダクションファイル(dockerfileとdocker-composeファイル)を即座に作成でき、開発者はそれらについて決して知らないと言うことさえできます。どう思いますか? –

+0

@BenYitzhaki私はまだドッカーを使用していませんでした。ですから、docker-compose .ymlファイルを使ってその操作を行うだけで十分であることが分かっているなら、もちろんこの方法で使うことができます.bashスクリプティングはこのような状況では必須ではありません。 –

関連する問題