首页 > 解决方案 > 使用 docker-machine 通过 Docker 在 AWS EC2 中更新 Rails 应用程序的工作流程是什么?

问题描述

我是 Docker 新手,我正在尝试了解在 AWS中更新我的应用程序的工作流程,在它上线后。目前,rails 应用程序和 MySQL 数据库都在同一个 EC2 实例上。这是我为使应用程序上线所做的工作:

我有一个 dockerfile 一个定义服务的 docker-compose.yml 文件。rails 应用程序源通过 docker-compose.yml 中的绑定挂载链接到应用程序容器:

  app:
    ...
    volumes:
      - $PWD:/zhxword

当我准备好部署时,我运行:

docker-machine create --driver amazonec2 --amazonec2-instance-type "t2.micro" production
docker-machine env production
eval $(docker-machine env production)

从现在开始,我的 docker-compose 命令以生产容器 (EC2) 为目标:

docker-compose build
docker-compose up -d

docker-compose build命令花了很长时间,但最终它完成了,应用程序启动了,我可以通过 HTTP 访问它。

我的问题是关于做出改变的过程。例如,对 docker-compose.yml 的更改(例如暴露端口 443)或对 rails 代码的例行更改。如果我运行docker-compose down && docker-compose up这似乎还不够 - 对 docker-compose.yml 的更改似乎没有得到反映。我认为运行docker-compose build会起作用,但这会重新配置整个服务器,并且需要非常长的时间。

一旦 dockerized 应用程序上线,例行更新的实际步骤是什么?有没有一种快速的方法来强制它刷新代码?

标签: ruby-on-railsdockerdocker-composedocker-machine

解决方案


推荐阅读