Nginx unit koa docker-compose demo

7 min read

Title: Nginx unit koa docker-compose demo

配置文件

# keep our base image as small as possible
FROM nginx/unit:1.26.1-node16

COPY package.json /www/package.json
WORKDIR /www/
RUN npm i 
COPY config.json /docker-entrypoint.d/config.json
COPY app.js /www/app.js

dockerfile

# keep our base image as small as possible
FROM nginx/unit:1.26.1-node16

COPY package.json /www/package.json
WORKDIR /www/
RUN npm i 
COPY config.json /docker-entrypoint.d/config.json
COPY app.js /www/app.js

docker-compose

version: "3"
services:
 unit:
  build: .
  ports:
    - "8081:8081"

app.js

const Koa = require('koa');
const app = new Koa();

// logger

app.use(async (ctx, next) => {
  await next();
  const rt = ctx.response.get('X-Response-Time');
  console.log(`${ctx.method} ${ctx.url} - ${rt}`);
});

// x-response-time

app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  ctx.set('X-Response-Time', `${ms}ms`);
});

// response

app.use(async ctx => {
  ctx.body = 'Hello, Koa on Unit!';
});

app.listen();