windows 无法将永久文件夹添加到 bitnami/mongodb
Can't add persistent folder to bitnami/mongodb on windows
我认为这可能与文件系统不兼容有关(nfts/ext*)
如何在不退出容器的情况下组合我的容器并保留数据库?
我正在使用 bitnami-mongodb-image
错误:
Error executing 'postInstallation': EACCES: permission denied, mkdir '/bitnami/mongodb'
mongodb_1 exited with code 1
完整输出:
Recreating mongodb_1 ... done
Starting node_1 ... done
Attaching to node_1, mongodb_1
mongodb_1 |
mongodb_1 | Welcome to the Bitnami mongodb container
mongodb_1 | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mongodb
mongodb_1 | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mongodb/issues
mongodb_1 |
mongodb_1 | nami INFO Initializing mongodb
mongodb_1 | mongodb INFO ==> Deploying MongoDB from scratch...
mongodb_1 | Error executing 'postInstallation': EACCES: permission denied, mkdir '/bitnami/mongodb'
mongodb_1 exited with code 1
Docker版本:
Docker version 18.06.0-ce, build 0ffa825
Windows版本:
Microsoft Windows 10 Pro
Version 10.0.17134 Build 17134
到目前为止,这是我的docker-compose.yml:
version: "2"
services:
node:
image: "node:alpine"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=development
volumes:
- ./:/home/node/app
ports:
- "8888:8888"
command: "tail -f /dev/null"
mongodb:
image: 'bitnami/mongodb'
ports:
- "27017:27017"
volumes:
- "./data/db:/bitnami"
- "./conf/mongo:/opt/bitnami/mongodb/conf"
我不使用 Windows 但你绝对可以尝试使用命名卷并查看权限问题是否消失
version: "2"
services:
node:
image: "node:alpine"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=development
volumes:
- ./:/home/node/app
ports:
- "8888:8888"
command: "tail -f /dev/null"
mongodb:
image: 'bitnami/mongodb'
ports:
- "27017:27017"
volumes:
- mongodata:/bitnami:rw
- "./conf/mongo:/opt/bitnami/mongodb/conf"
volumes:
mongodata:
我想强调的是,与您正在使用的主机卷相比,这是一个命名卷。这是生产的最佳选择,您需要注意 docker 将为您管理和存储文件,因此您不会在项目文件夹中看到这些文件。
如果您仍想使用主机卷(即写入您在主机上的项目子文件夹中指定的位置的卷),您需要应用权限修复,这里是 mariadb 的示例,但它可以工作对于 mongo 也是
https://github.com/bitnami/bitnami-docker-mariadb/issues/136#issuecomment-354644226
简而言之,您需要知道主机上文件系统的用户是什么(在示例中,1001 是我主机上登录用户的用户 ID),然后将该文件夹 chown 给该用户,以便该用户在文件夹和您的主机系统上将是相同的。
完整示例:
version: "2"
services:
fix-mongodb-permissions:
image: 'bitnami/mongodb:latest'
user: root
command: chown -R 1001:1001 /bitnami
volumes:
- "./data:/bitnami"
mongodb:
image: 'bitnami/mongodb'
ports:
- "27017:27017"
volumes:
- ./data:/bitnami:rw
depends_on:
- fix-mongodb-permissions
希望对您有所帮助
我认为这可能与文件系统不兼容有关(nfts/ext*)
如何在不退出容器的情况下组合我的容器并保留数据库?
我正在使用 bitnami-mongodb-image
错误:
Error executing 'postInstallation': EACCES: permission denied, mkdir '/bitnami/mongodb'
mongodb_1 exited with code 1
完整输出:
Recreating mongodb_1 ... done
Starting node_1 ... done
Attaching to node_1, mongodb_1
mongodb_1 |
mongodb_1 | Welcome to the Bitnami mongodb container
mongodb_1 | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mongodb
mongodb_1 | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mongodb/issues
mongodb_1 |
mongodb_1 | nami INFO Initializing mongodb
mongodb_1 | mongodb INFO ==> Deploying MongoDB from scratch...
mongodb_1 | Error executing 'postInstallation': EACCES: permission denied, mkdir '/bitnami/mongodb'
mongodb_1 exited with code 1
Docker版本:
Docker version 18.06.0-ce, build 0ffa825
Windows版本:
Microsoft Windows 10 Pro
Version 10.0.17134 Build 17134
到目前为止,这是我的docker-compose.yml:
version: "2"
services:
node:
image: "node:alpine"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=development
volumes:
- ./:/home/node/app
ports:
- "8888:8888"
command: "tail -f /dev/null"
mongodb:
image: 'bitnami/mongodb'
ports:
- "27017:27017"
volumes:
- "./data/db:/bitnami"
- "./conf/mongo:/opt/bitnami/mongodb/conf"
我不使用 Windows 但你绝对可以尝试使用命名卷并查看权限问题是否消失
version: "2"
services:
node:
image: "node:alpine"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=development
volumes:
- ./:/home/node/app
ports:
- "8888:8888"
command: "tail -f /dev/null"
mongodb:
image: 'bitnami/mongodb'
ports:
- "27017:27017"
volumes:
- mongodata:/bitnami:rw
- "./conf/mongo:/opt/bitnami/mongodb/conf"
volumes:
mongodata:
我想强调的是,与您正在使用的主机卷相比,这是一个命名卷。这是生产的最佳选择,您需要注意 docker 将为您管理和存储文件,因此您不会在项目文件夹中看到这些文件。
如果您仍想使用主机卷(即写入您在主机上的项目子文件夹中指定的位置的卷),您需要应用权限修复,这里是 mariadb 的示例,但它可以工作对于 mongo 也是
https://github.com/bitnami/bitnami-docker-mariadb/issues/136#issuecomment-354644226
简而言之,您需要知道主机上文件系统的用户是什么(在示例中,1001 是我主机上登录用户的用户 ID),然后将该文件夹 chown 给该用户,以便该用户在文件夹和您的主机系统上将是相同的。
完整示例:
version: "2"
services:
fix-mongodb-permissions:
image: 'bitnami/mongodb:latest'
user: root
command: chown -R 1001:1001 /bitnami
volumes:
- "./data:/bitnami"
mongodb:
image: 'bitnami/mongodb'
ports:
- "27017:27017"
volumes:
- ./data:/bitnami:rw
depends_on:
- fix-mongodb-permissions
希望对您有所帮助