Docker rails app和git

Sno*_*man 4 docker

比方说,我有一个设备齐全的以服务Rails应用程序与乘客和Apache的容器,和我有一个虚拟主机的路由到/ var /网络/应用/在我的容器公众.由于容器应该有点像进程,当我的Rails代码发生变化时,我该怎么办?如果app使用Git克隆,并且repo中有待更改,那么pull这些容器中的容器如何自动更改?

Bra*_*ncy 8

根据您的部署原则,您可以选择构建容器的方式:

  • 最小:您在Docker文件中安装所有rails pre-req(RUN命令),但ENTRYPOINT类似于" git pull && bundle install --deployment && rails run".在容器启动时,它将获取您的最新代码.

  • 快照:与上面相同,但ENTRYPOINT 也是一个RUN命令.这样,容器具有预安装的代码快照,但在引导容器时仍会更新.有时这可以加快启动时间(即,如果已经安装了大部分宝石).

  • 作为部署的容器:与上面相同,但rails run仅将ENTRYPOINT更改为" ".这样,您的容器就是您的代码.每次更换导轨时都必须制作新的容器(自动化!).优点是您的容器根本不需要联系您的代码仓库.缺点是你必须始终记住最新的容器是什么.(标签可以帮助)而且现在,Docker没有关于清理旧容器的好故事.