项目作者: akagaeng

项目描述 :
Micro nodejs native app server
高级语言: JavaScript
项目地址: git://github.com/akagaeng/micro-nodejs-server.git
创建时间: 2020-09-13T14:29:27Z
项目社区:https://github.com/akagaeng/micro-nodejs-server

开源协议:MIT License

下载


micro-nodejs-server

  • Micro nodejs native app server
  • Running node.js server on docker container

Build from the scratch

Init with yarn

  1. # npm init
  2. $ yarn init

Edit package.json file

  1. {
  2. "name": "micro_nodejs_server",
  3. "version": "1.0.0",
  4. "description": "Node.js on Docker",
  5. "author": "akagaeng<akagaeng@gmail.com>",
  6. "main": "server.js",
  7. "scripts": {
  8. "start": "node server.js"
  9. },
  10. "dependencies": {
  11. "express": "^4.17.1"
  12. }
  13. }

Install package

  1. # npm install
  2. $ yarn

Write server.js

  1. 'use strict';
  2. const express = require('express');
  3. const PORT = 8080;
  4. const HOST = '0.0.0.0';
  5. const app = express();
  6. app.get('/', (req, res) => {
  7. res.send('Hello world\n');
  8. });
  9. app.listen(PORT, HOST);
  10. console.log(`Running on http://${HOST}:${PORT}`);

Create Dockerfile

  1. FROM node:12
  2. WORKDIR /usr/src/app
  3. COPY package.json yarn.lock ./
  4. RUN yarn
  5. COPY . .
  6. EXPOSE 8080
  7. CMD [ "yarn", "start" ]

.dockerignore

  1. node_modules
  2. npm-debug.log

Build docker image

  1. # docker build -t <your username>/<app name> .
  2. $ docker build -t akagaeng/micro-nodejs-server .

Inspect images

  1. $ docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. akagaeng/micro-nodejs-server latest cef2fa8d9dc6 3 minutes ago 915MB

Run Docker container using image

  1. docker run -p 80:8080 -d --name micro-nodejs-server akagaeng/micro-nodejs-server
  2. # external port: 80
  3. # internal port: 8080

Inspect docker container

  1. $ docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. a60e16cdda5e akagaeng/micro-nodejs-server "docker-entrypoint.s…" 3 seconds ago Up 3 seconds 0.0.0.0:80->8080/tcp micro-nodejs-server

Show Docker logs

  1. # docker logs -f <Container ID or name>
  2. $ docker logs -f micro-nodejs-server
  3. yarn run v1.19.1
  4. $ node server.js
  5. Running on http://0.0.0.0:8080

Start a Bash session

  1. # docker exec -it <Container ID or name> /bin/bash
  2. $ docker exec -it <Container ID or name> bash

Inspect web app running

  1. $ curl localhost:80
  2. Hello world