为何无法通过YAML文件修改mongo-express登录账号密码?求解决方案
问题
登录mongo-express时,无法通过Docker Compose YAML文件修改默认登录账号密码(预期为admin/yourpassword,实际仍为admin/pass)。以下是相关信息:
Docker Compose YAML文件
version: '3.1' services: mongo: image: mongo container_name: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: yourpassword volumes: - mongo-db:/data/db networks: - mongo-network mongo-express: image: mongo-express container_name: mongo-express restart: always depends_on: - mongo environment: ME_CONFIG_MONGODB_ADMINUSERNAME: admin ME_CONFIG_MONGODB_ADMINPASSWORD: yourpassword ME_CONFIG_MONGODB_SERVER: mongo ports: - 8081:8081 networks: - mongo-network networks: mongo-network: driver: bridge volumes: mongo-db:
docker exec -it mongo-express env 输出
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=1eb94c222db6 TERM=xterm ME_CONFIG_MONGODB_ADMINPASSWORD=yourpassword ME_CONFIG_MONGODB_SERVER=mongo ME_CONFIG_MONGODB_ADMINUSERNAME=admin NODE_VERSION=18.19.0 YARN_VERSION=1.22.19 ME_CONFIG_MONGODB_URL=mongodb://mongo:27017 ME_CONFIG_MONGODB_ENABLE_ADMIN=true VCAP_APP_HOST=0.0.0.0 MONGO_EXPRESS_VERSION=1.0.0 HOME=/root
mongo-express 日志
Welcome to mongo-express ------------------------ Mongo Express server listening at http://0.0.0.0:8081 Server is open to allow connections from anyone (0.0.0.0) basicAuth credentials are "admin:pass", it is recommended you change this in your config.js!
已尝试重启Docker,但问题未解决。
原因与解决方法
原因
当前设置的环境变量是用于mongo-express连接MongoDB的管理员账号密码,而非mongo-express自身的登录账号密码。这两类参数完全独立:
ME_CONFIG_MONGODB_ADMINUSERNAME/ME_CONFIG_MONGODB_ADMINPASSWORD:用于mongo-express访问MongoDB集群的权限验证- mongo-express自身的登录账号密码需要通过另外的环境变量配置
解决方法
在mongo-express的environment块中添加以下两个环境变量:
ME_CONFIG_BASICAUTH_USERNAME: admin ME_CONFIG_BASICAUTH_PASSWORD: yourpassword
修改后的完整mongo-express服务配置如下:
mongo-express: image: mongo-express container_name: mongo-express restart: always depends_on: - mongo environment: ME_CONFIG_MONGODB_ADMINUSERNAME: admin ME_CONFIG_MONGODB_ADMINPASSWORD: yourpassword ME_CONFIG_MONGODB_SERVER: mongo ME_CONFIG_BASICAUTH_USERNAME: admin ME_CONFIG_BASICAUTH_PASSWORD: yourpassword ports: - 8081:8081 networks: - mongo-network
生效步骤
- 停止并移除现有容器:
docker-compose down - 重新启动服务:
docker-compose up -d - 查看mongo-express日志,确认basicAuth已更新为设置的账号密码
内容的提问来源于stack exchange,提问作者KYD
相关产品推荐
相关产品推荐

