ruby-on-rails - 使用 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 应用程序上线,例行更新的实际步骤是什么?有没有一种快速的方法来强制它刷新代码?
解决方案
推荐阅读
- mongodb - MongoDB 删除或限制字段条件聚合
- r - 如何移动R图例中的符号
- angular - Angular 7 - Kubernetes 服务中的 Rest API 消耗(未公开)
- python - 有效检测重叠网络
- python - 在创建正则表达式时面临挑战
- javascript - 高效的数组映射
- reactjs - 将 material-ui 中的活动选项卡从默认粉色更改为其他颜色
- umbraco - Umbraco 中基于代码的 Serilog 配置
- java - Spring MVC 每次都渲染相同的视图
- wordpress - 如何创建一个基于 Laravel 的 WordPress 插件