前端dockerfile
时间: 2023-09-06 16:07:06 浏览: 130
一个基本的前端 Dockerfile 示例:
```dockerfile
# 使用官方 Node.js 12 镜像作为基础镜像
FROM node:12
# 设置工作目录
WORKDIR /app
# 复制 package.json 和 package-lock.json 到工作目录
COPY package*.json ./
# 安装依赖
RUN npm install
# 将所有文件复制到工作目录
COPY . .
# 打包应用
RUN npm run build
# 使用 nginx 作为 web 服务器
FROM nginx:alpine
# 将应用的 build 文件夹复制到 nginx 中的 html 文件夹
COPY --from=0 /app/build /usr/share/nginx/html
# 将 nginx 的配置文件复制到容器中
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 暴露 80 端口
EXPOSE 80
# 启动 nginx
CMD ["nginx", "-g", "daemon off;"]
```
该 Dockerfile 的做法是:
1. 使用官方 Node.js 12 镜像作为基础镜像
2. 设置工作目录为 /app
3. 复制 package.json 和 package-lock.json 到工作目录
4. 安装依赖
5. 将所有文件复制到工作目录
6. 打包应用
7. 使用 nginx 作为 web 服务器
8. 将应用的 build 文件夹复制到 nginx 中的 html 文件夹
9. 将 nginx 的配置文件复制到容器中
10. 暴露 80 端口
11. 启动 nginx
需要注意的是,该 Dockerfile 使用了多阶段构建。第一阶段使用 node:12 镜像进行构建,第二阶段使用 nginx 镜像运行应用。这样做可以减小镜像的大小,并且不会将开发环境的依赖打包进镜像中。
阅读全文