2016-08-17 11 views
0

私は簡単なDockerfileを構築しようとしています。現在のディレクトリからコンテナにファイルをコピーし、mongorestoreコマンドを実行してデータをシードします。私は多くの異なるウェブサイトを見てきましたが、私はまだ次のエラーが発生しています。MongoDB Container Dockerfile到達可能なサーバがありません

2016-08-17T03:03:22.639 + 0000に失敗しました:サーバーのDBへの接続エラー:なしアク​​セス可能サーバ
コマンド「/ binに/ shの-c mongorestore --drop /モンゴシード/ mongo-容器の中に1

私は 『bashの』と、それはデータベースを移入同じパラメータでmongorestoreのコマンドを実行します。127.0.0.1:27017' --host種データ/モンゴダンプは非ゼロコードを返しました。私は迷っています。助けてください。以下は

あなたは、コンテナを起動したときにDockerfile

FROM mongo 

COPY . /mongo-seed 
EXPOSE 27017 


CMD ["mongod"] 
RUN mongorestore --drop /mongo-seed/mongo-seed-data/mongo-dump --host 127.0.0.1:27017 

答えて

2

CMDが実行されています。 イメージを構築中にdockerがドッカーファイルの最後のRUN命令を実行すると、mongodは実行されません。

FROM mongo 
COPY . /mongo-seed 
# EXPOSE 27017 //not necessary, the mongo base image already has that instruction 
ENTRYPOINT mongod 

ビルドして実行します。docker build -t foo . && docker run -d --name bar foo

mongorestoreのコマンドを実行します。予想通り

docker exec bar mongorestore --drop ... 
+0

すべてが働きました。 mongostoreの代わりにmongorestoreを使用する必要がありました。私はまだCMD、ENTRYPOINT、RUNなどのさまざまな使い方を学んでいます。 – user3066155

+0

申し訳ありませんが、私の最後にはタイプミスでした:) – Martin

関連する問題