touch Dockerfile
FROM node RUN npm install -g pomelo # RUN npm config set registry https://registry.npm.taobao.org # RUN npm install -g cnpm --registry=https://registry.npm.taobao.org RUN npm install -g cnpm RUN npm install -g gulp RUN npm install -g web-pack RUN npm install -g nodemon
docker build -t node-tools
sudo docker login --password=「8位密碼.」 --username=「龍馬行空09」 registry.cn-hangzhou.aliyuncs.com //sudo docker login --username=龍馬行空09 registry.cn-hangzhou.aliyuncs.com sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/shiguoqing/node-tools:[鏡像版本號] sudo docker push registry.cn-hangzhou.aliyuncs.com/shiguoqing/node-tools:[鏡像版本號]
echo "正在構建靜態網站」 \ && docker run --name jupiter-install -v $(pwd):/home -w /home --rm node-tools npm install \ && docker run --name jupiter-build -v $(pwd):/home -w /home --rm node-tools npm run build \ if [ "`docker ps -f name=jupiter -q`" ]; then echo "stop and rm jupiter」 docker stop jupiter docker rm jupiter elif [ "`docker ps -a -f name=jupiter -q`" ]; then echo "rm jupiter」 docker rm jupiter else echo 「jupiter 不存在" fi \ && docker run --name jupiter -d --restart always -v $(pwd)/dist:/usr/share/nginx/html:ro -p 5555:80 nginx
echo "正在構建" \ && cd web-server \ && docker build -t pomelo-dev-client . \ if [ "`docker ps -f name=pomelo-dev-client -q`" ]; then echo "stop and rm pomelo-dev-client" docker stop pomelo-dev-client docker rm pomelo-dev-client elif [ "`docker ps -a -f name=pomelo-dev-client -q`" ]; then echo "rm pomelo-dev-client" docker rm pomelo-dev-client else echo "pomelo-dev-client不存在" fi \ && docker run -d --name pomelo-dev-client --restart always -p 3001:3001 pomelo-dev-client
FROM node-pomelo MAINTAINER shiguoqing <shiguoqing999@163.com> # http://bitjudo.com/blog/2014/03/13/building-efficient-dockerfiles-node-dot-js/ # use changes to package.json to force Docker not to use the cache # when we change our application's nodejs dependencies: ADD package.json /tmp RUN cd /tmp && npm install RUN mkdir -p /home/pomelo/web-server && cp -a /tmp/node_modules /home/pomelo/web-server/ WORKDIR /home/pomelo/web-server ADD . /home/pomelo/web-server EXPOSE 3001 CMD ["nodemon", "app.js"]
echo "正在構建" \ && cd game-server \ && docker build -t pomelo-dev-server . \ if [ "`docker ps -f name=pomelo-dev-server -q`" ]; then echo "stop and rm pomelo—dev-server" docker stop pomelo-dev-server docker rm pomelo-dev-server elif [ "`docker ps -a -f name=pomelo-dev-server -q`" ]; then echo "rm pomelo-dev-server" docker rm pomelo-dev-server else echo "pomelo—dev-server 不存在" fi \ && docker run -d --name pomelo-dev-server -e MONGOOSE_HOST=mongo -e MONGOOSE_AUTH=true --restart always -p 3010:3010 -p 3101:3101 -p 3102:3102 --link mongo:mongo pomelo-dev-server
FROM node-pomelo MAINTAINER shiguoqing <shiguoqing@bimsop.com> #http://bitjudo.com/blog/2014/03/13/building-efficient-dockerfiles-node-dot-js/ # use changes to package.json to force Docker not to use the cache # when we change our application's nodejs dependencies: # RUN npm install -g cnpm --registry=https://registry.npm.taobao.org ADD package.json /tmp RUN cd /tmp && npm install RUN mkdir -p /home/pomelo/game-server && cp -a /tmp/node_modules /home/pomelo/game-server/ WORKDIR /home/pomelo/game-server ADD . /home/pomelo/game-server # EXPOSE EXPOSE 3010 EXPOSE 3101 EXPOSE 3102 CMD ["pomelo", "start"]
code=0.2.9 \ && cd game-server\ && echo "正在構建pomelo-server" \ && docker build -t pomelo-server-master . \ && cd ../web-server \ && echo "正在構建pomelo-client" \ // —rm 運行完就刪除 -v是映射目錄 pwd當前路徑 -w 工做目錄 node 是鏡像 && docker run --rm --name pomelo-client-master-install -v $(pwd):/home -w /home node npm install \ && docker run --rm --name pomelo-client-master-build -v $(pwd):/home -w /home node npm run build \ && ls \ && cp ../nginx.conf dist/nginx.conf \ && cp ../Dockerfile dist/Dockerfile \ && cd dist \ && ls \ && docker build -t pomelo-client-master . \ && echo 「開始打版」 \ && docker tag pomelo-client-master registry.cn-beijing.aliyuncs.com/pomelo/pomelo-client:${code} \ && docker tag pomelo-server-master registry.cn-beijing.aliyuncs.com/pomelo/pomelo-server:${code} \ && docker login --password=「密碼密碼密碼.」 --username=「石國慶」@b registry.cn-beijing.aliyuncs.com \ && docker push registry.cn-beijing.aliyuncs.com/pomelo/pomelo-client:${code} \ && docker push registry.cn-beijing.aliyuncs.com/pomelo/pomelo-server:${code}
FROM nginx MAINTAINER shiguoqing <shiguoqing@bimsop.com> RUN mkdir -p /home/app WORKDIR /home/app ADD . /home/app COPY ./nginx.conf /etc/nginx/conf.d/default.conf
server { client_max_body_size 4G; listen 80; server_name localhost; root /home/app; gzip on; gzip_min_length 500; gzip_buffers 4 8k; gzip_types application/javascript application/x-javascript text/css application/xml image/gif image/jpeg image/PNG application/octet-stream; location ~ .*\.(jpg|png|PNG|obj|map)$ { expires 30d; } location / { # autoindex on; # autoindex_exact_size on; # autoindex_localtime on; index index.html; } }
code=0.2.9 \ && docker login --password="b8爲密碼.」 --username="shiguoqing"@bimsop registry.cn-beijing.aliyuncs.com \ && docker pull registry.cn-beijing.aliyuncs.com/bimsop/sso-client:${code} \ if [ "`docker ps -f name=sso-client -q`" ]; then echo "stop and rm sso-client" docker stop sso-client docker rm sso-client elif [ "`docker ps -a -f name=sso-server -q`" ]; then echo "rm sso-client" docker rm sso-client else echo "sso-client 不存在" fi \ && docker run --name sso-client -d -p 1111:80 --restart always registry.cn-beijing.aliyuncs.com/bimsop/sso-client:${code}
code=0.2.7 \ && docker login --password="b8地方IM.」 --username=「shiguoqing」@bimsop registry.cn-beijing.aliyuncs.com \ && docker pull registry.cn-beijing.aliyuncs.com/bimsop/sso-server:${code} \ if [ "`docker ps -f name=sso-server -q`" ]; then echo "stop and rm sso-server" docker stop sso-server docker rm sso-server elif [ "`docker ps -a -f name=sso-server -q`" ]; then echo "rm sso-server" docker rm sso-server else echo "sso-server 不存在" fi \ && docker run -d --link mongo:mongo --name sso-server --restart always -p 6699:6699 -e FRONTURL="accounts.bimsop.com" -e MONGOHOST="mongo" -e SSO_IP=accounts.bimsop.com registry.cn-beijing.aliyuncs.com/bimsop/sso-server:${code}
# Add the docker group if it doesn't already exist. $ sudo groupadd docker # Add jenkins user to docker group. $ sudo gpasswd -a jenkins docker $ sudo gpasswd -a root jenkins $ sudo gpasswd -a ${USER} jenkins # Restart the Docker daemon. $ sudo service docker restart $ sudo service jenkins restart
echo "正在構建" \ && docker -v \ && cd game-server \ && docker build -t pomelo-server-dev . \ if [ "`docker ps -f name=pomelo-server-dev -q`" ]; then echo "stop and rm pomelo-server-dev" docker stop pomelo-server-dev docker rm pomelo-server-dev elif [ "`docker ps -a -f name=sso-server -q`" ]; then echo "rm pomelo-server-dev" docker rm pomelo-server-dev else echo "pomelo-server-dev 不存在" fi \ && docker run -d --name pomelo-server-dev --restart always -p 3010:3010 --link mongo:mongo pomelo-server-dev
DockerFile在哪裏,根目錄就在哪裏javascript
// 一、經過node啓動一個鏡像 docker run --name mongo -d -v /var/mongo/data/db:/data/db -p 27017:27017 mongo // 二、設置一些可視化工具支持連接 docker exec -it mongo /bin/bash mongo use admin var schema = db.system.version.findOne({"_id" : "authSchema"}) schema.currentVersion = 3 db.system.version.save(schema) // 三、建立第一個管理員 db.createUser({user:」superAdmin",pwd:"abcdefgh",roles:[{role:'userAdminAnyDatabase',db:'admin'}]}) // 這一小段有可能不須要,不行就加上 exit cp -rf /etc/mongod.conf.orig /data/db exit vi /var/mongo/data/db/mongod.conf.orig // authorization:'enabled' docker exec -it mongo /bin/bash cd /etc cp -rf /data/db/mongod.conf.orig . exit // 四、對第一個用戶的管理員進行認證和受權,注意管理員通常只負責管理,不負責增刪改查,因此須要不一樣數據庫的用戶 docker stop mongo docker start mongo docker exec -it mongo /bin/bash mongod --auth --port 27017 --dbpath /data/db mongo --port 27017 -u ‘superAdmin’ -p ‘abcdefgh’ --authenticationDatabase ‘admin’ use admin db.auth(‘superAdmin’,’abcd1234!’) db.system.users.find() // 五、爲數據庫設置用戶和密碼 use peacock db.createUser( { user: 「peacockDevelop」, pwd: 「abcdefgh」, roles: [ { role: "readWrite", db: 「peacock」 }, { role: "readWrite", db: 「users」 } ] } ) use users db.createUser( { user: 「peacockDevelop2」, pwd: 「abcdefgh」, roles: [ { role: "readWrite", db: 「peacock」 }, { role: "readWrite", db: 「users」 } ] } ) use pomelo-vr db.createUser( { user: 「pomeloDevelop」, pwd: 「abcdefgh」, roles: [ { role: "readWrite", db: 「pomelo-vr」 }] } ) exit exit // 六、將修改變爲增量鏡像,方便之後的使用,此時建立的鏡像就已經有auth了 docker commit mongo mongo-auth docker stop mongo #中止mongodb容器 docker rm mongo #刪除mongodb容器 // 七、第一次啓動mongo-auth docker run --name mongo -d -v /var/mongo/data/db:/data/db -p 27017:27017 mongo-auth mongod -—auth // 八、其餘 // 構建出來一個mongo-auth鏡像後就已是開啓權限的鏡像了,再次啓動的時候不須要加—-auth // 再增長新用戶的時候直接進去就能夠了,而後啓動的時候不須要增長—auth,不然報找不到—-auth命令 docker exec -it mongo /bin/bash mongo --port 27017 -u ‘superAdmin’ -p ‘abcdefgh’ --authenticationDatabase ‘admin’ use admin db.system.users.find() use peacock db.createUser( { user: 「peacockDevelop」, pwd: 「abcdefgh」, roles: [ { role: "readWrite", db: 「peacock」 }, { role: "readWrite", db: 「users」 } ] } ) docker run --name mongo -d -v /var/mongo/data/db:/data/db -p 27017:27017 mongo-auth mongod
docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0