我的脚本文件跟Dockerfile都放在/app/frontend目录下
时间: 2023-12-14 15:02:56 浏览: 90
共享脚本所在的文件夹
4星 · 用户满意度95%
没问题,我会相应地修改脚本和Dockerfile的路径。请检查以下更新后的内容:
docker-compose.yml文件内容如下:
```yaml
version: '3'
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 80:80
depends_on:
- nginx
nginx:
image: nginx:latest
ports:
- 80:80
volumes:
- ./frontend/dist:/usr/share/nginx/html
```
Dockerfile文件内容如下:
```Dockerfile
# 使用node镜像作为基础镜像
FROM node:14.17.0-alpine as build
# 设置工作目录
WORKDIR /app/frontend
# 将package.json和package-lock.json复制到工作目录
COPY package*.json ./
# 安装依赖
RUN npm install
# 将所有文件复制到工作目录
COPY . .
# 执行npm run build:prod命令
RUN npm run build:prod
# 使用nginx镜像作为基础镜像
FROM nginx:latest
# 将dist目录中的文件复制到nginx的默认静态文件目录
COPY --from=build /app/frontend/dist /usr/share/nginx/html
# 暴露80端口
EXPOSE 80
# 容器启动时运行nginx命令
CMD ["nginx", "-g", "daemon off;"]
```
脚本(script.sh)内容如下:
```bash
#!/bin/bash
# 进入/frontend目录
cd /app/frontend
# 安装依赖
npm install
# 执行npm run build:prod
npm run build:prod
```
请确保在/app/frontend目录下已经有package.json和package-lock.json文件,并且已经安装了npm和Docker。然后在/app/frontend目录中执行以下命令:
```bash
chmod +x script.sh
./script.sh
```
这样脚本会执行npm install 和 npm run build:prod命令。
最后,在/app目录下执行以下命令启动服务:
```bash
docker-compose up -d
```
这样就完成了在/app/frontend目录中执行npm install 和 npm run build:prod,并且使用nginx转发打包生成的dist目录内容的配置。
阅读全文