gpt4 book ai didi

ruby-on-rails - 为 Docker 部署 Rails 应用程序

转载 作者:行者123 更新时间:2023-12-02 18:33:11 24 4
gpt4 key购买 nike

阅读了许多资源,但从部署的角度来看仍然对 Docker 感到困惑。试图找出 Docker 环境中 Rails 应用程序的最佳实践,特别感兴趣如何解决以下问题:

1)从以前部署的容器访问日志,可以停止/销毁。系统日志/系统日志?

2) 回滚部署有多容易?就丢弃的请求而言,这是否安全?你可以向镜像发送 USR2+QUIT 信号,但继续优雅地使用另一个镜像启动新的 master/workers 吗? Nginx 上游有多个图像端口?

3) 如何使用 Ansible 或替代品配置 Dockerfile?否则 Dockerfile 类 bash 风格的缺陷是什么?

4) 通过 Docker 访问 Rails 控制台的最佳方式是什么?

最佳答案

1) access to the logs from previously deployed container which can be stopped/destroyed. Rsyslog/syslog?



一种选择是将您的日志发送到 ELK stack .使用 logtash-forwarderlog-courierBeaver

2) how easy to rollback a deployment? Is that safe in terms of dropped requests? Can you send USR2 + QUIT signals to the image but keep starting new master/workers with another image gracefully? Nginx upstream with multiple image ports?



这是一个很好的问题。因此,如果您想优雅地终止 session ,则必须与运行 unicorn 或其他任何东西的容器交谈,并在容器内发出 USR2 + QUIT 信号以优雅地处理 session 终止。

容器非常轻量级,因此您可以使用新代码实例化新容器并在使用旧代码终止容器之前终止 nginx/unicorn 进程,而不是重新启动 nginx/unicorn。这里的技巧是管理容器和在容器内发出命令的机制。不确定,但我认为 Kubernetes可能有一个机制。

3) how to provision Dockerfile with Ansible or alternatives? Otherwise what are pitfalls of Dockerfile bash-like style?



这更多地取决于您的想象力。您可以模板化 Dockerfile 并运行 ansible docker build .或者你可以使用类似 Ansible Docker module . Dockerfile 本质上是一个构建容器的运行手册,可以修改、放入源代码控制等。

4) what is the best way to access to Rails console through Docker?



为您的容器分配一个伪 tty 并使其具有交互性。然后你可以运行:
docker attach <container-id>

附加到容器,然后运行您的 bundle exec rails console命令。

或者,您可以将容器的进程号设为 1 sshd进程,然后您可以 ssh 到容器并运行 bundle exec rails console .这就是像 test-kitchen 这样的工具。与 docker-driver做。

关于ruby-on-rails - 为 Docker 部署 Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com