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

时间:2014-09-11 06:55:35

标签: meteor docker digital-ocean

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

我试过了:

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

但是没有任何工作,那么我不确定如何真正管理更新/部署/运行?

例如,如何在不重建docker镜像的情况下更新应用程序?

2 个答案:

答案 0 :(得分:2)

以下是我建议的工作流程:

  1. Docker Hub上创建一个帐户,您可以免费获得1个私人存储库。如果您希望在自己的服务器上托管一个完整的私有存储库,则可以运行整个docker registry并使用它来托管您的映像。

  2. 在开发计算机上(本地或服务器)创建映像,然后使用docker push

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

  5. 您可以预先安装Docker(从应用程序选项卡)启动数字海洋水滴,只需拉动图像并运行容器即可。每当您从开发机器更新并推送图像时,只需将其从液滴中再次拉出即可。

  6. 对于大型复杂的基础架构,我建议您查看Ansible以配置docker containers并管理digital ocean droplet

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

答案 1 :(得分:0)

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