仮想サーバ/docker/compose
提供: 初心者エンジニアの簡易メモ
nodejsのredisを使ったもののサンプル
docker-compose.yml
nodeapp: build: "./app-server" container_name: "nodeapp" working_dir: "/usr/src/app" ports: - "9080:10080" volumes: - "$PWD/app-server/src:/usr/src/app" links: - "noderedis" noderedis: image: "redis:3" container_name: "noderedis"
app-server/Dockerfile
FROM node:5 RUN npm -g install redis ENV NODE_PATH /usr/local/lib/node_modules ENTRYPOINT ["node", "app.js"]
app-server/src/app.js
var redis = require('redis'); var redis_client = redis.createClient(6379, "noderedis"); var listen_port = 10080; require('http').createServer(function (request, response) { redis_client.incr('counter', function(error, reply) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end("helloworld " + reply + " times.\n"); }); }).listen(listen_port, '0.0.0.0'); console.log("Server is running on port " + listen_port + ".");
docker-compose.yml のあるdirで
$ docker-compose up
アクセス ttp://localhost:9080/
dockerの外からvolume内のデータを変更しても、即docker内に反映される。
参考:https://qiita.com/TsutomuNakamura/items/7e90e5efb36601c5bc8a