meteorbuild立在本地或在主机上

Meteor应用程序正在本地机器上运行。 然后它得到build立appDir$ Meteor build . 并将生成的myApp.tar.gz复制到AWS云中。 然后在云上运行脚本,将应用程序放入Docker容器,遵循一些Dockerfile命令。

每次需要做一个改变,重复以上几点,有什么更好的方法来减less重build/复制/docker化的工作?

是否有可能通过使用卷和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 

有一个名为rsync的命令,可以对整个目录结构进行智能同步 – 如果您在本地解压缩构build,则可以将其同步到服务器。

它可以使用文件date或校验和来确定发生了什么变化,并且可以使过程更快。 缩小的文件可能每次都会改变,但肯定很多资源不会每次都改变。

我将使用生产目录的镜像进行设置,将文件同步到那里,首先执行一些(自动)完整性检查,然后将新版本切换到位。 如果不起作用,则可以将旧版本切换回来。 完成这个设置需要做一些工作,但是这会使部署变得更快/更容易