【发布时间】:2017-08-12 06:30:58
【问题描述】:
我正在使用 Docker,并且我有一个包含 PHP、MySQL、Apache 和 Redis 的堆栈。我现在需要添加 MongoDB,所以我正在检查 Dockerfile 的最新版本以及 MongoDB Dockerhub 中的 the docker-entrypoint.sh 文件,但我找不到设置默认数据库、管理员用户/密码和可能的身份验证的方法来自docker-compose.yml 文件的容器的方法。
在 MySQL 中,您可以设置一些 ENV 变量,例如:
db:
image: mysql:5.7
env_file: .env
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
这会将数据库和用户/密码设置为root 密码。
有没有办法用 MongoDB 实现同样的效果?有人有经验或解决方法吗?
【问题讨论】:
-
能不能基于mysql创建一个容器,随意设置,然后使用?
-
@Valentin 我当然可以,但你的意思是什么?
-
我的意思是,您可以使用变量在 dockerfile 中设置默认数据库、管理员用户/密码和可能的身份验证方法,然后将它们传递到 compose 文件中
-
注意:如果使用任何使用 mongo-init 脚本的解决方案,请确保为依赖于 mongo 的容器设置了 restart: unless-stopped (或除 no 之外的其他内容)。这是因为这些容器在初始化时将无法连接到 mongo(即使使用 depends_on 标志)。有关详细信息,请参阅此线程stackoverflow.com/questions/31746182/…
标签: mongodb docker docker-compose