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

Dan*_*her 5 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
Run Code Online (Sandbox Code Playgroud)

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

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

iTe*_*ech 2

这是我建议的工作流程:

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

  2. 在开发计算机(本地或服务器上)上创建映像,然后使用以下命令将映像推送到存储库docker push

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

  4. 您可以启动预安装了 docker 的数字海洋 Droplet(从“应用程序”选项卡),然后只需提取图像并运行容器即可。每当您从开发机器更新并推送映像时,只需从 Droplet 中再次拉取即可。

对于大型且复杂的基础设施,我建议使用 Ansible 来配置Docker 容器并管理数字海洋水滴

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