Cod*_*mer 10 mongodb docker docker-volume
我正在尝试使用 Docker 运行我的应用程序,这是我的 yml 文件内容来运行 mongo 容器。
\n services:\n mongodb:\n image: mongo:3.4\n # ports:\n # - "27017:27017"\n volumes:\n - ./data/mongo:/data/db\n restart: always\nRun Code Online (Sandbox Code Playgroud)\n并在 contianer 中收到此错误:(运行 docker log 命令后看到此错误)
\n\n\nchown:更改“/data/db”的所有权:不允许操作
\n
主机有 ./data/mongo 文件夹,以下是详细信息。
\ndrwxrwxrwx 2 nfsnobody nfsnobody 4096 May 11 23:13 mongo\nRun Code Online (Sandbox Code Playgroud)\n我尝试按照其中一个论坛的建议在主机上运行它。
\nsudo chgrp 1000 ./data/mongo\nRun Code Online (Sandbox Code Playgroud)\n不知道这将如何帮助解决问题,因为我们得到的错误是在容器文件夹中而不是来自主机的错误,无论如何我都尝试过。。
\n但得到了这样的回应:
\n\n\nchgrp:更改 \xe2\x80\x98mongo\xe2\x80\x99 组:不允许操作
\n
如何解决这个问题?除了“chgrp”之外还有其他解决方案吗?谢谢。
\n这是完整的 docker-compose.yml 文件
\n## You can generate a custom docker compose file automatically on http://reportportal.io/download (Step 2)\n\n## This is example of Docker Compose for ReportPortal\n## Do not forget to configure data volumes for production usage\n\n## Execute 'docker-compose -p reportportal up -d --force-recreate'\n## to start all containers in daemon mode\n## Where:\n## '-p reportportal' -- specifies container's prefix (project name)\n## '-d' -- enables daemon mode\n## '--force-recreate' -- forces re-recreating of all containers\n\nversion: '2'\n\nservices:\n\n mongodb:\n image: mongo:3.4\n # ports:\n # - "27017:27017"\n volumes:\n - ./data/mongo:/data/db\n restart: always\n\n registry:\n image: consul:1.0.6\n volumes:\n - ./data/consul:/usr/share/consul/data\n# ports:\n# - "8500:8500"\n# - "8300:8300"\n# - "53:8600/udp"\n command: "agent -server -bootstrap-expect=1 -ui -client 0.0.0.0"\n environment:\n - 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}'\n restart: always\n\n\n uat:\n image: reportportal/service-authorization:4.2.0\n #ports:\n # - "9999:9999"\n depends_on:\n - mongodb\n environment:\n - RP_PROFILES=docker\n - RP_SESSION_LIVE=86400 #in seconds\n # - RP_MONGO_URI=mongodb://localhost:27017\n restart: always\n\n ### Another option for gateway\n ### Can be used instead of traefik\n # gateway:\n # image: fabiolb/fabio:1.5.8-go1.10\n # ports:\n # - "9998:9998" # GUI/management\n # - "8080:9999" # HTTP exposed\n # environment:\n # - FABIO_REGISTRY_CONSUL_ADDR=registry:8500\n # - FABIO_REGISTRY_CONSUL_REGISTER_NAME=gateway\n # - FABIO_PROXY_ADDR=:9999;rt=300s;wt=300s\n # restart: always\n\n\n\n gateway:\n image: traefik:1.6.6\n ports:\n - "4444:8080" # HTTP exposed\n - "8081:8081" # HTTP Administration exposed\n# expose:\n# - '8080'\n command:\n - --consulcatalog.endpoint=registry:8500\n - --defaultEntryPoints=http\n - --entryPoints=Name:http Address::8080\n - --web\n - --web.address=:8081\n restart: always\n\n index:\n image: reportportal/service-index:4.2.0\n environment:\n - RP_SERVER_PORT=8080\n - RP_PROXY_CONSUL=true\n depends_on:\n - registry\n - gateway\n restart: always\n\n api:\n image: reportportal/service-api:4.3.0\n depends_on:\n - mongodb\n environment:\n - RP_PROFILES=docker\n - JAVA_OPTS=-Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp\n # - RP_MONGO_URI=mongodb://localhost:27017\n restart: always\n\n ui:\n image: reportportal/service-ui:4.3.0\n environment:\n - RP_SERVER.PORT=8080\n - RP_CONSUL.TAGS=urlprefix-/ui opts strip=/ui\n - RP_CONSUL.ADDRESS=registry:8500\n restart: always\n\n analyzer:\n image: reportportal/service-analyzer:4.3.0\n depends_on:\n - registry\n - gateway\n - elasticsearch\n restart: always\n\n elasticsearch:\n image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.1\n restart: always\n volumes:\n - ./data/elasticsearch:/usr/share/elasticsearch/data\n environment:\n - bootstrap.memory_lock=true\n ulimits:\n memlock:\n soft: -1\n hard: -1\n nofile:\n soft: 65536\n hard: 65536\n # ports:\n # - "9200:9200"\n\n jira:\n image: reportportal/service-jira:4.0.0\n environment:\n - RP_PROFILES=docker\n # - RP_MONGO_URI=mongodb://localhost:27017\n restart: always\n\n rally:\n image: reportportal/service-rally:4.3.0\n environment:\n - RP_PROFILES=docker\n # - RP_MONGO_URI=mongodb://localhost:27017\n restart: always\nRun Code Online (Sandbox Code Playgroud)\n
/data/configdb如果以 root 身份运行,Mongo 启动脚本会更改文件的所有权/data/db。尝试以nfsnobody( local 的所有者./data/mongo)身份运行它以跳过此步骤:
services:
mongodb:
user: "nfsnobody" # insert either uid or name of the user
Run Code Online (Sandbox Code Playgroud)
我试图在这里回答类似的问题 - /sf/answers/5126720441/
简而言之,我们可以挂载到路径/data而不是/data/db. 这样,mongo就可以在/data/db内部执行chown了。
| 归档时间: |
|
| 查看次数: |
33045 次 |
| 最近记录: |