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環境を設定する(不要です.)
インストール
3.Dockerをインストールして、linux発行版のパケット管理ツールで注をインストールします.CentOSは7.0以上がコマンドラインでインストールされます. mongoDB外部アクセス問題のデフォルトは を参照してください. build鏡像時報が間違っています.debconf:unable to initialize frontend:Dialog dockerを最新のものにアップグレードしました. を設けないでください. CentOS 6.5を使用しないと はサポートされなくなります.
現在の展開方式はローカル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
注意点mongod.conf
においてアクセス可能なipをローカル127.0.0.1
に制限し、docker化されていないmongoDBの場合、container
にここDockerfile
にARG DEBIAN_FRONTEND=noninteractive
を設けて、