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 所在的目录