Docker Compose MongoDB docker-entrypoint-initdb.d 不起作用

Mun*_*oor 5 mongoose mongodb docker docker-compose

我正在使用以下 docker-compose 文件

version: '3.7'
services:
 db_container:
  image: mongo:latest
  restart: always
  environment:
    MONGO_INITDB_ROOT_USERNAME: root
    MONGO_INITDB_ROOT_PASSWORD: password
    MONGO_INITDB_DATABASE: root-db
  ports:
    - 27017:27017
  volumes:
    - ./database/initdb.js:/docker-entrypoint-initdb.d/initdb.js:ro
    - ./data:/data/db
Run Code Online (Sandbox Code Playgroud)

这是我的 initdb.js 文件

db.createUser(
{
  user: "api-test",
  pwd: "api-test",
  roles: [
    {
      role: "readWrite",
      db: "api-test"
    }
  ]
}
);
Run Code Online (Sandbox Code Playgroud)

我只能看到 3 个数据库并且无法连接到api-test数据库

在此处输入图片说明

如果缺少什么,请帮助我

Mun*_*oor 11

能够借助以下文章Docker-Compose mongoDB Prod、Dev、Test Environment的帮助解决问题

文件结构应该是

Project
??? docker-compose.yml (File)
??? docker-entrypoint-initdb.d (Directory)
?   ??? mongo-init.js (File)
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml 文件

version: '3.7'

services:
   mongo:
    container_name: container-mongodb
    image: mongo:latest
    restart: always
    ports:
      - 27017:27017

    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password
      MONGO_INITDB_DATABASE: root-db

    volumes:
      - ./docker-entrypoint-initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
Run Code Online (Sandbox Code Playgroud)

mongo-init.js文件

Project
??? docker-compose.yml (File)
??? docker-entrypoint-initdb.d (Directory)
?   ??? mongo-init.js (File)
Run Code Online (Sandbox Code Playgroud)