我认为这可能与文件系统不兼容(nfts/ext*)有关
如何在容器不退出的情况下组合容器并持久化数据库?
我使用的是bitnami mongodb图像
错误:
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),然后将该文件夹传送给该用户,以便该用户在文件夹和主机系统上是相同的。
一个完整的例子:
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
我希望这有帮助
问题内容: 我已经用python编写了一个库,并且希望它驻留在文件系统上的公共位置。 从我的脚本,我只想做: 现在,我知道为了执行此操作, 可以 执行以下操作: 但是我不想每次都这样做。 问题是:如何将文件夹永久添加到python的sys.path?我可以想象这将是一个环境变量,但我找不到它。 看起来应该很容易,但是我找不到解决方法。 问题答案: PYTHONPATH环境变量将执行此操作。
问题内容: 我有一个名为的文件,我想从其他文件中使用该文件,因此我决定将其添加到另一个文件中并将其导入另一个文件中以使用该文件。为此,我在IPython中运行了以下内容。 我可以看到我刚刚添加的路径,当我尝试从另一个目录路径中导入该文件时,如下所示: 它工作正常,但是一旦我离开IPython,再次输入它,并检查了,我发现添加的路径不存在,那么如何在Python中永久地向sys.path添加路径?
问题内容: 每当我使用时,都会添加新目录。但是,一旦我关闭python,列表将恢复为以前的值(默认值)。如何将目录永久添加到PYTHONPATH? 问题答案: 你需要将新目录添加到环境变量中PYTHONPATH,并用冒号与其之前的内容分隔开。在任何形式的Unix中,你都可以在启动脚本中执行此操作,该脚本适合于你正在使用的任何shell(.profile或取决于你喜欢的shell),该命令又取决于所
我试图在AWSS3中上传错误文件,但它显示错误,如“您试图访问的存储桶必须使用指定的endpoint寻址。请将所有未来的请求发送到此endpoint:”test9011960909。s3。亚马逊。com“ 我还指定了“区域”= 当我指定时,它正在工作 但我想把文件上传到主bucket的子文件夹中 我已经应用了AWS S3批准的答案:您试图访问的桶必须使用指定的终结点进行寻址 但仍然得到同样的错误,
问题内容: 我有一个类目录“ JNA”,其中包含以下.class文件: 然后我尝试在当前项目中添加此目录:Java Build Path-> Add external class folder-> class(JNA)folder path-> ok 在这次蚀之后仅添加两个.class文件: 我试图将所有类文件放在jar文件中,并添加了外部jar,结果仍然相同:( 请告诉我如何添加其余的.clas
问题内容: Eclipse设置为在“ bin”处编译为构建目录。我有一个包含各种Java .class文件(预编译)的文件夹结构,我想在编译时将其复制到文件夹“ bin”中。 如何告诉Eclipse自动执行此操作? 问题答案: 项目属性中“ Java构建路径”下的“添加类文件夹…”和“添加外部类文件夹…”按钮似乎完全可以满足您的要求。