如何dockerize我的nodejs快递应用程序托pipe在亚马逊linux ami?

1.my上面的应用程序技术栈是expressjs,nodejs,mongoDB,redisDB,s3(存储)。 2.API托pipe在Linux AMI上3.我需要为我的应用程序创builddocker容器镜像。

首先,您需要决定是否将所有内容都保存在单个容器(单片,不能真正推荐它)或分离关注点,并运行单独的express / nodejs容器,mongodb容器和redisDB容器,s3是一个服务你不能为自己跑,

如果你select了后面的方法,Docker集线器上已经有官方支持的redis映像,而mongo现在用于实际应用服务器(节点),你需要将其设置为对节点的依赖关系,并启动官方节点映像npm的安装命令(这将得到明确表示),然后npm开始(或任何您使用的命令),不要忘了包括你的代码作为一个卷,这个工作,

现在,请记住,如果您的应用程序使用mongodb中的任何引用数据,则应确保在mongodb容器启动时插入它,或者基于已经存在数据的官方mongodb创build映像!

另外值得一提的是,你应该把你的expressjs应用程序中的所有连接作为envvariables来传递,这样你可以在部署你的应用程序容器的时候改变它们(当你在多个主机上分发你的系统的时候很有用)

在一天结束的时候,您将按照以下顺序启动容器:mongodb,redis和node / express。 现在,与s3的连接应该已经在您的节点应用程序内处理了,所以在这种情况下无关紧要,只要确保节点应用程序可以到达存储区即可!

如果你只是想build立一个单一的容器,只需从一个debian jessie图像开始,在容器中获取一个shell,像在服务器上一样安装所有东西,运行代码并将图像提交到你的repo,然后用它来运行你的应用程序,但我不能推荐这个方法!

BR,