跳到主要内容

Node 部署

2024年06月21日
柏拉文
越努力,越幸运

一、认识


项目结构如下:

my-server/
├── Dockerfile
├── app.js
├── .dockerignore
├── package.json

二、操作


2.1 app.js

const Koa = require("koa");
const Router = require("koa-router");

const app = new Koa();
const router = new Router();
const port = process.env.port || 3000;

router.get("/", (ctx) => {
ctx.body = "Hello World!";
});

app.use(router.routes());
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});

可以通过 process.env.port 来访问 docker run -e 传递的环境变量

2.2 Dockerfile

Dockerfile

FROM node:latest
WORKDIR /server
COPY package*.json /server
RUN npm install
COPY . /server
EXPOSE 4000
CMD ["node","index.js"]

2.3 .dockerignore

node_modules
dist

2.4 构建 Docker 镜像

一、通过 docker build --no-cache -t node-build . 构建镜像

docker build --no-cache -t node-build .

2.5 运行 Docker 镜像

二、通过 docker run -d --name node-build -p 4000:4000 -e port=4000 node-build 启动镜像,并通过 -d 后台运行, 通过 -p 映射端口, 通过 -e 传递 port 环境变量

docker run -d --name node-build -p 4000:4000 -e port=4000 node-build