gpt4 book ai didi

docker - 如何在 docker-compose.yml 文件中链接 MySQL RDS?

转载 作者:行者123 更新时间:2023-12-02 18:05:17 25 4
gpt4 key购买 nike

而不是低于mysql容器数据库链接,我要链接AWS Mysql RDS在 docker yml file .是否可以?

 mysql_db:
image: mysql:5.6
container_name: shishir_db
environment:
MYSQL_ROOT_PASSWORD: "xxxxxxxx"
#MYSQL_USER: "shishir"
#MYSQL_DATABASE: "shishir1"
MYSQL_PASSWORD: "xxxxxxxx"
ports:
- "3306:3306"

最佳答案

您可以通过多种方式从 docker-compose.yml 链接到 AWS RDS MySQL 实例。 .

第一种可能也是最简单的方法是在需要访问 RDS MySQL 实例的容器上设置环境变量。例如,您可以更新您的 OperationEngine服务定义看起来像:

OperationEngine:
image: shishir/operationengine:${RELEASE_OTA_VERSION}
container_name: operation_engine
ports:
- "8080:8080"
environment:
- DOCKER_HOST_IP: ${DOCKER_HOST_IP}
- JAVA_OPTS: ${JAVA_OPTS}
- MYSQL_HOST: "your-mysql-cname.rds.amazon.com"
- MYSQL_USER: "username"
- MYSQL_PASSWORD: "password"
volumes:
- ${HOME}/operationengine/logs/:/usr/local/tomcat/logs/

然后,您可以更新该服务中的配置以从环境中读取数据库连接详细信息,例如 ${MYSQL_HOST} .

这种方法的明显缺点是您将连接详细信息作为纯文本存储在 docker-compose.yml 中,这不是很好,但根据您的要求可能是可以接受的。

第二种方法(也是我倾向于使用的一种)是将数据库配置绑定(bind)到正在运行的容器中。

大多数应用程序都支持从属性文件中读取数据库连接详细信息。例如:假设在启动时您的应用程序从 /config/database.properties 读取并需要以下属性才能连接到数据库:
config.db.host=your-mysql-cname.rds.amazon.com
config.db.user=foo
config.db.password=bar

我会设置我的环境,以便在运行时,我 bind mount为容器提供所有必需值的属性文件:
OperationEngine:
volumes:
- /secure/config/database.properties:/config/database.properties
/secure/config目录是 Docker 主机上文件系统的一部分。该目录的创建和填充方式取决于您。通常,我通过让我的环境设置脚本创建目录,然后将私有(private) Git 存储库克隆到该目录中来解决此问题,该目录包含该环境的正确配置。自然,只有具有所需权限级别的人才能查看包含敏感配置详细信息的 Git 存储库,即生产系统。

希望有帮助。

关于docker - 如何在 docker-compose.yml 文件中链接 MySQL RDS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889684/

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