2017-03-09 69 views
0

我想在Bluemix上部署一个Mongodb Docker容器,它具有数据持久性,但系统尝试挂载到主机(Bluemix)卷上的容器“/ data/db”,并且容器不启动。在过去的两天里,我已经研究并尝试了多个选项,including one for Postgres on stackoverflow,但仍然得到相同的错误。任何帮助将不胜感激。IBM Bluemix:无法在Bluemix主机卷上安装MongoDB容器“/ data/db”

Error: $ docker logs f450993a-4cc ;chown: changing ownership of '/data/db': Permission denied

泊坞窗,撰写文件:

泊坞窗,compose.yml

mongodb: 
    container_name: mymongo 
    image: registry.ng.bluemix.net/helpfull/mongo:3.2.10 
    volumes: 
    - mongodb:/data/db:rw 
    ports: 
    - "27017" 
+0

中的链接答案你为Postgres问题提供的是要走的路。我从来没有尝试过用docker-compose.yml,但这也是在这里记录的内容https://console.ng.bluemix.net/docs/containers/container_troubleshoot.html#ts_vol_owner –

回答

0

谢谢Israel.Zinc的提问和Alex的建议的好的编辑。在基于previous postRedis solution,krsyoung的脚本稍微多玩一点之后,我能够按照以下方式使其工作。我是Docker/Bluemix的新手,因此不确定这是否是正确的解决方案,但它工作正常,我希望它能为其他人节省时间。

多克尔 - 撰写:

mongo: 
    container_name: hfmongo 
    image: registry.ng.bluemix.net/helpfull/hfmongo:3.4.2 
    volumes: 
    - mongodatabase:/data/db 
    ports: 
    - "27017" 

Dockerfile:

FROM mongo:3.4 

COPY docker-entrypoint-bluemix.sh/
ENTRYPOINT ["/docker-entrypoint-bluemix.sh"] 

EXPOSE 27017 
CMD ["mongod"] 

docker-entrypoint-bluemix.sh

#!/bin/bash 
set -e 
set -x 

if [ "${1:0:1}" = '-' ]; then 
    set -- mongod "[email protected]" 
fi 

if [[ "$1" == mongo* ]] && [ "$(id -u)" = '0' ]; then 
    STARTTIME=$(date +%s) 
    echo "START: hack for IBM Bluemix" 
    chmod 775 "/data/db" 
    adduser mongodb root 
    echo "END: hack for IBM Bluemix" 
    exec gosu mongodb "$BASH_SOURCE" "[email protected]" 
fi 
exec "[email protected]" 
+0

这是否适合你?我正在尝试你的方法,并看到与空日志的容器关机。 – jamesism