使用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镜像的情况下更新应用程序?
答案 0 :(得分:2)
以下是我建议的工作流程:
在Docker Hub上创建一个帐户,您可以免费获得1个私人存储库。如果您希望在自己的服务器上托管一个完整的私有存储库,则可以运行整个docker registry并使用它来托管您的映像。
在开发计算机上(本地或服务器)创建映像,然后使用docker push
在需要时更新图片并使用docker commit
提交更改,然后将更新的图片推送到您的存储库(您应该正确版本并标记所有图片)
您可以预先安装Docker(从应用程序选项卡)启动数字海洋水滴,只需拉动图像并运行容器即可。每当您从开发机器更新并推送图像时,只需将其从液滴中再次拉出即可。
对于大型复杂的基础架构,我建议您查看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