2016-11-12 4 views
1

Meteorアプリケーションはローカルマシン上で実行されています。その後、appDir$ Meteor build .が作成され、結果としてmyApp.tar.gzがAWSクラウドにコピーされます。次に、Dockerfileコマンドの後に、ドッカーコンテナにアプリを置くスクリプトがクラウド上で実行されます。Meteorはローカルまたはawsホスト上に構築します

変更を行う必要があるたびに、上記の繰り返しが繰り返され、再構築/コピー/ドッキングが行われないようにするには?

volumeとdocker-composeを使用して、ローカル開発マシンの変更をaws EC2ボリュームディレクトリに同期することは可能ですか?どうやって?

//Dockerfile on AWS EC2 
FROM lambdalinux/baseimage-amzn:2016.09-000 

RUN curl --silent --location https://rpm.nodesource.com/setup_4.x | bash - 
RUN yum install -y tar nodejs 

ADD ./myApp.tar.gz /opt/ 
EXPOSE 80 

ENV ROOT_URL http://example.com 
ENV MONGO_URL "mongodb://username:pass..." 
ENV PORT 80 

# Install nodejs modules 
WORKDIR /opt/bundle/ 
RUN npm install fibers 
RUN npm install underscore 
RUN npm install source-map-support 
RUN npm install semver 

# Start the app 
CMD node ./main.js 

答えて

0

ディレクトリ構造全体のスマート同期を行いますrsyncのと呼ばれるコマンドがあります - あなたがローカルでビルドを展開場合は、サーバーにそれをrsyncをことができます。

ファイルの日付またはチェックサムのいずれかを使用して、変更された内容を解決し、処理を迅速化できます。細分化されたファイルはおそらく毎回変更されますが、確かに多くの資産が毎回変更されることはありません。

私はそれをあなたのプロダクションディレクトリのミラーで設定し、そこにファイルを同期させ、いくつかの(自動化された)サニティチェックを行い、新しいバージョンを適切な場所に切り替えます。動作しない場合は、古いバージョンを元に戻すことができます。この設定を行うには少しの作業が必要ですが、展開がより速く/簡単になります

関連する問題