ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker onbuild 이미지 이용하기 : Node.js
    Container 2016. 4. 1. 09:00
    반응형
    간단한 node.js 앱을 docker 이용해서 실행해 보자.
     
    간단한 node.js 앱을 만들어 보자.
    Server.js 라는 이름의 파일에 아래 내용을 추가하자.
    var http = require('http');
     
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello World\n');
    }).listen(1337, "0.0.0.0");
     
    console.log('Server running at http://0.0.0.0:1337/');
     

    package.json 파일을 만들어서 아래 내용을 추가하자.
    {
      "name": "dockerbook-nodejs",
      "version": "1.0.0",
      "description": "sample nodejs for dockerbook",
      "main": "server.js",
      "scripts": {
        "start": "node server.js"
      }
    }

    그리고 server.js 만든 경로와 같은 곳에 Dockerfile 만들고 아래 내용을 추가하자.
    FROM node:5.0-onbuild

    이제 node.js 컨테이너 이미지를 빌드해보자.
    docker build --tag nodejs-example .
     
    이미지가 빌드됐으면 이미지로 컨테이너를 실행한 다음에 접속해 보자.
    docker run --rm -it -p 1337:1337 nodejs-example
    curl 127.0.0.1:1337
     
    정상적으로 Hello World 화면에 출력되는걸 확인할 있다.
     
    Node.js express
    기본 node.js 외에 node.js에서 인기있는 프레임워크인 express 이용한 컨테이너를 만들어 보자.
    위의 기본 node.js 앱에서 server.js파일과 package.json파일만 아래처럼 바꿔주면 된다.
    Server.js
    var express = require('express');
    var app = express();
     
    app.get('/', function (req, res) {
        res.send('Hello Express!');
    });
     
    var server = app.listen(3000, function () {
        var host = server.address().address;
        var port = server.address().port;
     
        console.log('Example app listening at http://%s:%s', host, port);
    });


    package.json
    {
      "name": "express-example",
      "version": "1.0.0",
      "description": "",
      "main": "server.js",
      "scripts": {
        "start": "node server.js"
      },
      "dependencies": {
        "express": "^4.13.3"
      }
    }
     
    Dockerfile 변경하지않고 그대로 두면 된다.
    상태에서 다시 docker build하고 만들어진 이미지를 실행하면 된다.
    docker build --tag nodejs-express-example .
    docker run --rm -it -p 3000:3000 nodejs-express-example
     
    이제 3000 포트로 접속해 보면 Hello Express! 라는 문구가 출력된걸 확인할 있다.
    curl 127.0.0.1:3000
     
    반응형

    댓글

Designed by Tistory.