Node 服务Dockerfile 模板

Dockerfile nodejs 微服务最佳实践

 

使用官方 Node.js 镜像作为基础镜像,例如:FROM node:12

在 Dockerfile 中指定工作目录,例如:WORKDIR /app

将 package.json 和 package-lock.json 复制到工作目录中,然后运行 npm install 命令安装所有依赖项,例如:

COPY package*.json ./
RUN npm install

 

将应用程序代码复制到工作目录中,例如:COPY . .

暴露应用程序的端口,例如:EXPOSE 3000

使用 CMD 指令来启动应用程序,例如:CMD [“npm”, “start”]

使用 .dockerignore 文件排除不必要的文件和文件夹,例如:node_modules、.git、.DS_Store 等

将容器中的数据卷挂载到主机上,以便可以在容器外部访问应用程序日志和配置文件等数据

使用环境变量来配置应用程序,例如:PORT、DATABASE_URL 等

使用多阶段构建来缩小镜像大小,将构建依赖项和运行依赖项分开,例如:

FROM node:12 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM node:12
WORKDIR /app
COPY --from=builder /app/dist /app
COPY package*.json ./
RUN npm install --only=production
EXPOSE 3000
CMD [“npm”, “start”]

 

Node 服务Dockerfile 模板

# 使用 Node.js 官方镜像作为基础镜像
FROM node:12

# 指定工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖项
RUN npm install

# 复制应用程序代码
COPY . .

# 暴露应用程序端口
EXPOSE 3000

# 启动应用程序
CMD ["npm", "start"]

 

在构建镜像时,可以使用以下命令:

docker build -t my-node-app .

其中 my-node-app 是镜像名称,. 指当前目录是 Dockerfile 所在的目录

 

posted @ 2023-04-05 16:52  SuperCodeX  阅读(175)  评论(0编辑  收藏  举报