MeteorアプリケーションのDocer展開

3153 ワード

Docker部署
現在の展開方式はローカルbuild、アップロードサーバー、npm install、PM 2起動と管理項目です.
現在の問題1.MeteorはNodejsアプリケーションに包装して展開する時、npm installはいつも問題が発生します.2.アプリケーションが不安定で、何かが引っかかっています.Nodejsバージョンの問題かもしれません.
ソリューション1.sinopiaでローカルnpmライブラリを作成します.2.dockerで各アプリケーションを分離します.
ステップ
環境:CentOS 7
1.NodeJS環境を設定する(不要です.)
#   nodejs4.0
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs
yum install gcc-c++ make

#   n -nodejs      
npm install n -g
n 0.10.43 # meteor1.3   nodejs  
2.MongoDB環境の設置と配置(不要)
インストール
#  MongDB 3.2
vim /etc/yum.repos.d/mongodb-org-3.2.repo

### /etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
###
sudo yum install -y mongodb-org
設定
#   MongoDB

#   mongodb server
service mongod start

#     reboot   
sudo chkconfig mongod on

# mongodb client   
mongo
#        
use admin
db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

#   mongoDB    
vim /etc/mongod.conf
### /etc/mongod.conf
security:
    authorization: enabled 
###
service mongod restart #   
#   
mongo
use admin
db.auth("myUserAdmin", "abc123")
db.system.users.find({})


#      
mongo
use admin
db.auth("myUserAdmin", "abc123")
use testdb
db.createUser({ user: "test", pwd: "test123", roles: [ { role: "readWrite", db: "testdb" } ] })
mongodb role説明
3.Dockerをインストールして、linux発行版のパケット管理ツールで注をインストールします.CentOSは7.0以上がコマンドラインでインストールされます.
curl -fsSL https://get.docker.com/ | sh

#      (  )
sudo reboot
4.sinopiaを構成するここではsinopiaのdockerバージョンを使用します.
docker pull keyvanfatehi/sinopia:latest
docker run --name sinopia -d -p 4873:4873 keyvanfatehi/sinopia:latest
npm set registry http://0.0.0.0:4873/
5.セットアップmeteordbase/において
# Dockerfile
ARG DEBIAN_FRONTEND=noninteractive

# scripts/run_app.sh
if [ sinopia ]; then
  npm set registry http://sinopia:4873/
fi
新しい鏡像を作成します
sudo docker build  -t 'username/imagename' ./ 
インポートとエクスポートのイメージ
#   
sudo docker save -o dockername.tar  username/imagename

#   
sudo docker load --input dockername.tar
実行
docker run -d  \
  -e ROOT_URL=http://localhost \ 
  -e MONGO_URL=mongodb://test:test123@yourhost:27017/testdb \
  -p 8080:80 \
  --link sinopia:sinopia \
  -v /path/to/bundle:/bundle \
  --name contaiername  \
  username/imagename
注意点
  • mongoDB外部アクセス問題のデフォルトはmongod.confにおいてアクセス可能なipをローカル127.0.0.1に制限し、docker化されていないmongoDBの場合、containerにここ
  • を参照してください.
  • build鏡像時報が間違っています.debconf:unable to initialize frontend:Dialog dockerを最新のものにアップグレードしました.DockerfileARG DEBIAN_FRONTEND=noninteractiveを設けて、
  • を設けないでください.
  • CentOS 6.5を使用しないと
  • はサポートされなくなります.