Don*_*ald 6 database ruby-on-rails rds amazon-web-services docker
我正在使用 Docker 设计一个 Rails webapp,出于各种原因,我想在生产环境中使用 RDS 以实现其可配置性和持久性目的,而不是基于 Docker 容器的数据库(这是一项要求)。
我意识到我可以将database.yml配置为指向 Prod 环境的 RDS 实例,以及本地开发环境中的某个本地数据库实例。
但是,我很困惑是在本地开发环境中使用基于容器的数据库,还是像 MySQL 服务器这样的外部数据库。
基于 env-agnostic 容器的 Docker 模式,我认为仅在某些 envs 中拥有基于容器的数据库没有任何意义(事实上,我认为docker-compose.yml甚至不会支持这样的东西),所以我假设我需要为我的本地开发环境使用 MySQL 服务器解决方案。
有没有其他人经历过这样的要求?让我知道我是否以正确的方式思考这个问题。此外,这会对数据库迁移脚本造成任何潜在问题吗?
欢迎任何建议!
谢谢你。
很好的问题唐纳德。
\n我设置了一个 postgres 容器,以便使用我的dev.docker-compose.yml文件在本地使用。
在产品上,就像您一样,我的database.yml配置指向我的 RDS 数据库。
在我的产品 docker compose 文件中,由于我使用的是 RDS,所以没有指定任何数据库容器
\n# prod.docker-compose.yml\nversion: "3.9"\n\nservices:\n web:\n build:\n context: .\n target: prod\n args:\n PG_MAJOR: '13'\n RUBY_VERSION: '2.6.6'\n BUNDLER_VERSION: '2.1.4'\n env_file: .env\n stdin_open: true\n tty: true\n command: ./bin/start_dev_server\n image: ${REGISTRY_HOST}\n ports:\n - "3000:3000"\n\n# dev.docker-compose.yml\nversion: "3.9"\n\nservices:\n web:\n build:\n context: .\n target: dev\n args:\n PG_MAJOR: '13'\n RUBY_VERSION: '2.6.6'\n BUNDLER_VERSION: '2.1.4'\n env_file: .env\n stdin_open: true\n tty: true\n command: ./bin/start_dev_server\n volumes:\n - ".:/sokoplace"\xc2\xac\n - bundle:/bundle\n ports:\n - "3000:3000"\n\n postgres:\n image: "postgres:13-alpine"\n volumes:\n - postgres:/var/lib/postgresql/data\n ports:\n - "5432:5432"\n environment:\n POSTGRES_HOST_AUTH_METHOD: trust\n\nvolumes:\n bundle:\n postgres:\n\n# config/database.yml\nproduction:\n <<: *default\n url: <%= ENV['PRODUCTION_POSTGRES_HOST'] %>\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |