Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dockerfile返回生成的dist文件夹_Docker_Vue.js - Fatal编程技术网

Dockerfile返回生成的dist文件夹

Dockerfile返回生成的dist文件夹,docker,vue.js,Docker,Vue.js,我有一个简单的vue.js应用程序,我想使用Dockerfile来构建它: FROM node:14.14.0-stretch WORKDIR '/app' COPY package*.json ./ RUN npm install COPY . ./ RUN env RUN npm run generate 现在是否可以使用docker compose,在compose中不构建它,而是使用已经准备好的映像,从volume dist文件夹中获取?所以我可以将它复制到nginx?我建议您使用ng

我有一个简单的vue.js应用程序,我想使用Dockerfile来构建它:

FROM node:14.14.0-stretch
WORKDIR '/app'
COPY package*.json ./
RUN npm install
COPY . ./
RUN env
RUN npm run generate

现在是否可以使用docker compose,在compose中不构建它,而是使用已经准备好的映像,从volume dist文件夹中获取?所以我可以将它复制到nginx?

我建议您使用nginx提供dist文件夹。 您应该为此使用多阶段构建

Dockerfile

FROM node:14.14.0-stretch as build
WORKDIR '/app'
COPY package*.json ./
RUN npm install
COPY . ./
RUN env
RUN npm run generate

# create cdn stage from nginx image
FROM nginx:stable-alpine as cdn

# copy nginx config to serve files from /data/www
COPY nginx.conf /etc/nginx/nginx.conf

# copy built files from build stage to /data/www
COPY --from=build /app/dist /data/www

# nginx listen on port 80
EXPOSE 80
CMD [ "nginx" ]
nginx.conf

events {
    worker_connections 1024;
}

http {
    server {
        location / {
            root /data/www;
        }
    }
}
docker compose.yml

version: '2.4'

services:
  nginx-cdn:
    build:
      context: path/to/Dockerfile
      target: cdn
    ports:
      - '80:80'