2017-03-09 65 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