Ruby on rails 将Rails 6应用程序与AWS RDS数据库和一个本地应用程序对接
我刚刚了解了Docker,特别是如何将现有的Rails 6应用程序Docker化,以部署为AWS Elastic Beanstalk。我已经学习了一些教程,但仍然有点困惑,如果我使用的是两个数据库,我的Ruby on rails 将Rails 6应用程序与AWS RDS数据库和一个本地应用程序对接,ruby-on-rails,amazon-web-services,docker,docker-compose,amazon-rds,Ruby On Rails,Amazon Web Services,Docker,Docker Compose,Amazon Rds,我刚刚了解了Docker,特别是如何将现有的Rails 6应用程序Docker化,以部署为AWS Elastic Beanstalk。我已经学习了一些教程,但仍然有点困惑,如果我使用的是两个数据库,我的Dockerfile和docker compose.yml文件应该是什么样子的:一个已经创建了AWS RDS mysql数据库和一个本地Postgresql数据库。本地数据库没有安全凭据(我想在部署到EC2时可能需要创建一个新的凭据),但我的AWS RDS数据库有。这些安全凭据存储在Rails凭据
Dockerfile
和docker compose.yml
文件应该是什么样子的:一个已经创建了AWS RDS mysql数据库和一个本地Postgresql数据库。本地数据库没有安全凭据(我想在部署到EC2时可能需要创建一个新的凭据),但我的AWS RDS数据库有。这些安全凭据存储在Rails凭据中。下面是我的数据库.yml
现在的样子:
default: &default
adapter: mysql2
encoding: utf8
database: requests
username: <%= Rails.application.credentials[:aws_username] %>
password: <%= Rails.application.credentials[:aws_password] %>
host: <%= Rails.application.credentials[:aws_host] %>
cast: false
port: 3306
development:
aws:
<<: *default
local:
adapter: postgresql
encoding: unicode
database: tml_local
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
production:
aws:
<<: *default
local:
adapter: postgresql
encoding: unicode
database: tml_local
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
test:
aws:
<<: *default
local:
adapter: postgresql
encoding: unicode
database: tml_local
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
因此,基于以下最简单的docker compose.yml
文件,Rails 6应用程序中需要实现什么来承载2db。顺便说一句,我的应用程序使用Webpacker进行CSS
version: "3.7"
services:
webapp:
build: ./dir
version: "3.7"
services:
webapp:
build: ./dir