Dockerfile
mongodbとそのデフォルトコンテンツを管理するためのを作成しようとしています。
これがdockerファイルと関連するシェルスクリプトです-
DockerFile -
# Dockerizing MongoDB: Dockerfile for building MongoDB images
# Based on ubuntu:16.04, installs MongoDB following the instructions from:
# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
FROM ubuntu:16.04
# Installation:
# Import MongoDB public GPG key AND create a MongoDB list file
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
RUN echo "deb http://repo.mongodb.org/apt/ubuntu $(cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d= -f2)/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# Update apt-get sources AND install MongoDB
RUN apt-get update && apt-get install -y mongodb-org
# Create the MongoDB data directory
RUN mkdir -p /data/db
COPY ./scripts /data/scripts
COPY ./run.sh /data/init/run.sh
RUN chmod +x /data/init/run.sh
RUN chmod +x /data/scripts/*
RUN /data/init/run.sh
# Expose port #27017 from the container to the host
EXPOSE 27017
# Set /usr/bin/mongod as the dockerized entry-point application
ENTRYPOINT [ "/usr/bin/mongod", "--rest"]
Run.sh -
# Start mongo db
/usr/bin/mongod --fork --logpath /data/mongodb.log
# Run all Create scripts
# FILES= data/scripts/*-create.js
# for f in $FILES; do /usr/bin/mongo 127.0.0.1:27017/demo $f; done
cd data/scripts
# Run all Insert scripts
FILES= ./*-insert.js
for f in $FILES; do /usr/bin/mongo 127.0.0.1:27017 $f; done
#Stop mongo db
/usr/bin/mongod --shutdown
そしてデフォルト-insert.js -
var db = db.getSiblingDB('demo')
db.names.insert({'name' : 'Manoj Shevate', 'id':1});
Dockerイメージを作成しているときに、default-insert.jsの最初の行で次のエラーが発生します
syntax error near unexpected token "("
ここで何がうまくいかないのかわからない..専門家のアドバイスが必要です!
スペース-最後のフロンティア。少なくともこれは魚のように見えます:
# Run all Insert scripts
FILES= ./*-insert.js
それは作るFILES
(それはのようなシェルワンショットの変数の代入コマンドのエラー・メッセージの原因となって、シェルスクリプトとしてのjsファイルを実行するために、空と試行EDITOR=vi crontab -e
)。代わりにこれを使用してください:
for f in *-insert.js; do /usr/bin/mongo 127.0.0.1:27017 "$f"; done
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加