facebook twitter hatena line email

仮想サーバ/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