如何使用Docker将Meteor和Phusion Docker部署到数字海洋?

Phusion Docker和Node / Meteor支持部署到Digital Ocean的工作stream程是什么?

我试过了 :

FROM phusion/passenger-nodejs:0.9.10 # Set correct environment variables. ENV HOME /root # Use baseimage-docker's init process. CMD ["/sbin/my_init"] # ssh ADD private/keys/akey.pub /tmp/your_key RUN cat /tmp/your_key >> /root/.ssh/authorized_keys && rm -f /tmp/your_key ## Download shit RUN apt-get update RUN apt-get install -qq -y python-software-properties software-properties-common curl git build-essential RUN npm install fibers@1.0.1 # install meteor RUN curl https://install.meteor.com | /bin/sh # Clean up APT when done. RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Enable nginx # RUN rm -f /etc/service/nginx/down #setup app RUN mkdir /home/app/someapp ADD . /home/app/someapp WORKDIR /home/app/someapp EXPOSE 4000 CMD passenger start -p 4000 

但没有任何工作,然后我不知道如何真正pipe理更新/部署/运行?

例如,如何在不重buildDocker镜像的情况下处理更新应用程序呢?

这是我build议的工作stream程:

  1. 在Docker Hub上创build一个帐户,您可以免费获得1个私有存储库。 如果您想要在您自己的服务器上托pipe一个完整的私有存储库,则可以运行整个Dockerregistry并使用它来托pipe您的映像。

  2. 在您的开发机器(本地或服务器上)上创build您的映像,然后使用docker push将映像推送到存储库

  3. 在需要时更新图像,并使用docker commit提交更改,然后将更新的图像推送到您的存储库(您应该正确版本并标记所有图像)

  4. 您可以预先安装Docker(从应用程序选项卡)启动数字海洋液滴,并简单地拉出图像并运行容器。 无论何时您从开发机器更新并推送图像,只需从液滴中再次拉出。

对于大型和复杂的基础设施,我build议考虑Ansible来configuration您的docker集装箱,并pipe理数字海洋液滴 。

请注意,如果停止容器,数据将会丢失,因此请考虑在容器中定义映射到主机上的共享文件夹的卷

我build议你在本地的VirtualBox虚拟机中testing你的Dockerfile。 我写了一篇关于使用Docker部署node.js应用程序的教程。 我build立了几个图像(图层),而不是1。当你更新你的应用程序,你只需要重build顶层。 希望能帮助到你。 http://vinceyuan.blogspot.com/2015/05/deploying-web-app-redis-postgres-and.html