2016-05-17 6 views
0

セキュリティ上の理由からmongodbユーザーを作成しようとしています。今、私は次のようDockerfileを持っている:ドンガーとmongoユーザー

FROM mongo:3.3 

RUN mongo admin --eval "db.getSiblingDB('db').createUser({user: 'test', pwd: 'test'})" 

私はドッキングウィンドウを実行すると、私は次のエラーを取得:

MongoDB shell version: 3.3.5 
connecting to: admin 
2016-05-17T13:31:07.821+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, reason: Connection refused 
2016-05-17T13:31:07.821+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : 
[email protected]/mongo/shell/mongo.js:229:14 
@(connect):1:6 

exception: connect failed 
ERROR: Service 'mongodb' failed to build: The command '/bin/sh -c mongo admin --eval "db.getSiblingDB('db').createUser({user: 'test', pwd: 'test'})"' returned a non-zero code: 1 

を私はのmongodがこの時点で実行されていないため、これがあると思いますか?

どうすればこのmongodbユーザーを作成できますか?

+0

はこの理にかなっていますか?ユーザーは明らかに構成のものであり、ランタイムのためのものですか? –

+0

あなたはそうです。これに対する解決策はありますか? .envファイルには、ユーザーとパスワードを配置する場所があります。 – Piu130

+0

@ Piu130はmongoサーバーが起動していないように聞こえます – deFreitas

答えて

1

Dockerfile:

FROM mongo:3.3 
COPY setup.sh /setup.sh 
RUN /setup.sh 

setup.sh:

#!/bin/bash 

mongod & 

RET=1 
while [[ RET -ne 0 ]]; do 
    echo "=> Waiting for confirmation of MongoDB service startup" 
    sleep 5 
    mongo admin --eval "help" >/dev/null 2>&1 
    RET=$? 
done 

ADMINUSER=user 
ADMINPASS=pass 

echo "=> Creating an admin user in MongoDB" 
mongo admin --eval "db.createUser({user: '$ADMINUSER', pwd: '$ADMINPASS', roles:[{role:'root',db:'admin'}]});" 

mongod --shutdown 
+0

ありがとう:)タグ '3.3.0'はmongoには存在しません。 '3.3'を使うべきです – Piu130

関連する問題