mongodb - 无法连接到 Docker 中的数据库主机
问题描述
我正在尝试使用环境对象连接到 mongoDB docker 实例集群,但出现以下错误,主要是它“无法找到或创建与请求规范的 MongoDB 的连接:
我的.env
文件只包含这一行:
MONGODB=mongodb://prizmdb:27017,prizmdb:27018,prizmdb:27019/prizmserver
这是我的 Dockerfile:
version: '3.7'
volumes:
db_data:
x-shared_environment: &shared_environment
LOG_LEVEL: ${LOG_LEVEL:-debug}
DATABASE_HOST: mongosetup
DATABASE_NAME: vapor_database
DATABASE_USERNAME: vapor_username
DATABASE_PASSWORD: vapor_password
services:
app:
image: prizmserver:latest
build:
context: .
environment:
<<: *shared_environment
volumes:
- $PWD/.env:/app/.env
depends_on:
- mongosetup
ports:
- '8080:8080'
# user: '0' # uncomment to run as root for testing purposes even though Dockerfile defines 'vapor' user.
command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"]
migrate:
image: prizmserver:latest
build:
context: .
environment:
<<: *shared_environment
depends_on:
- mongosetup
command: ["migrate", "--yes"]
deploy:
replicas: 0
revert:
image: prizmserver:latest
build:
context: .
environment:
<<: *shared_environment
depends_on:
- mongosetup
command: ["migrate", "--revert", "--yes"]
deploy:
replicas: 0
mongo-1:
image: mongo:4.4.1
ports:
- "27017:27017"
container_name: mongo-1
hostname: mongo-1
networks:
- mongo_cluster
command: mongod --replSet rs0
mongo-2:
image: mongo:4.4.1
ports:
- "27018:27018"
container_name: mongo-2
hostname: mongo-2
networks:
- mongo_cluster
command: mongod --replSet rs0
depends_on:
- mongo-1
mongo-3:
image: mongo:4.4.1
ports:
- "27019:27019"
container_name: mongo-3
hostname: mongo-3
networks:
- mongo_cluster
command: mongod --replSet rs0
depends_on:
- mongo-2
mongosetup:
image: mongo:4.4.1
networks:
- mongo_cluster
volumes:
- ./scripts:/scripts
command: bash -c "chmod +x /scripts/setup.sh && /scripts/setup.sh"
networks:
mongo_cluster:
driver: bridge
我应该如何以及在哪里声明prizmdb
将使用我的环境对象正确连接的别名?
解决方案
推荐阅读
- python - 如何使用 Python 脚本将 HTML 批量转换为 Markdown
- azure - Azure 数据工厂 - 设置 blob 容器的元数据以及“复制”活动
- amazon-web-services - 如何将 PATH 导出到“sam build”命令?
- flutter - 是否有任何 SDK 在 Flutter 中我们可以在同一屏幕上看到七个直播流媒体?
- hibernate - Hibernate:添加强制谓词
- javascript - API 仅在我开始输入后呈现(Firebase)
- java - Java中的多维数组到JSON(和返回)
- visual-studio-code - VSCode API 中是否有可以检查语言服务器是否可用于给定语言的命令?
- python - Numba 矢量化与常数的参与
- swiftui - 使用“导航链接”在“导航视图”之间导航