代码之家  ›  专栏  ›  技术社区  ›  Yuriy Gyerts

docker编写中如何连接到具体数据库

  •  1
  • Yuriy Gyerts  · 技术社区  · 2 年前

    我有下一个设置 docker-compose.yaml

    name: test-app-to-delete
    
    services:
      mongo:
        image: mongo
        restart: always
        networks:
          - mongo
        volumes:
          - db:/data/db:rw
        environment:
          MONGO_INITDB_ROOT_USERNAME: 'user'
          MONGO_INITDB_ROOT_PASSWORD: 'password'
          MONGO_INITDB_DATABASE: 'db-name'
    
      mongo-express:
        image: mongo-express
        restart: always
        networks:
          - mongo
        ports:
          - 8081:8081
        environment:
          ME_CONFIG_MONGODB_ADMINUSERNAME: user
          ME_CONFIG_MONGODB_ADMINPASSWORD: password
          ME_CONFIG_MONGODB_URL: mongodb://user:password@mongo:27017/db-name
    
    networks:
      mongo:
    
    volumes:
      db:
    

    所以当我添加时,问题就成了问题 db-name 到这种配置。

    错误:

    Could not connect to database using connectionString: 
    mongodb://user:password@mongo:27017/db-name
    

    只需注意:我在运行此配置之前重新创建了数据库,所以问题不在缓存数据中。

    1 回复  |  直到 2 年前
        1
  •  1
  •   DreamBold    2 年前

    你可以试试 mongodb://user:password@localhost:27017/db-name?authSource=admin 而不是您当前的连接字符串。 并确保使用 base64 的转换值 username password