2016-11-12 77 views
1

流星應用正在本地機器上運行。然後構建appDir$ Meteor build .,並將生成的myApp.tar.gz複製到AWS雲中。然後,在雲上運行一個腳本,將應用程序放入Docker容器中,並遵循一些Dockerfile命令。本地或在aws主機上創建流星

每次需要完成更改,重複以上步驟,任何更好的方法來減少重建/複製/ dockerizing的工作?

是否有可能通過使用卷和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的它給服務器。

它可以使用文件日期或校驗和來確定發生了什麼變化,並且會使過程更快。縮小的文件可能每次都會改變,但肯定很多資源不會每次都改變。

我會用生產目錄的一個鏡像對其進行設置,將文件同步到那裏,首先進行一些(自動)完整性檢查,然後將新版本切換到位。如果它不起作用,您可以切換舊版本。完成這項設置需要一點點工作,但它會使部署更快/更容易