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();