Многоступенчатая сборка Docker завершается с ошибкой на vue.js - PullRequest
0 голосов
/ 02 апреля 2019

Это мой dockerFile, расположенный по адресу vDocker / Dockerfile

# build stage
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# production stage
FROM nginx:stable-alpine as production-stage
RUN apk add --no-cache bash
COPY ./vDocker/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build-stage /app/dist /usr/share/nginx/html

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

У меня также есть docker-compose, расположенный в корневом каталоге.

version: '3'

services:
  web_client:
    build:
      context: .
      dockerfile: ./vDocker/Dockerfile
    container_name: web_client
    restart: unless-stopped
    tty: true
    volumes:
      - /var/www/app/ssl/certbot/conf:/etc/letsencrypt
      - /var/www/app/ssl/certbot/www:/var/www/certbot
    ports:
      - 80:80
      - 443:443

После запуска docker-compose build, мне выдается следующая ошибка: Служба 'web_client' не смогла создать: COPY не удалось: stat / var / lib / docker / overlay2 / 67b326c995a1ce52fb3ee2a792d84ffe9bc403aa5962755a2b89f1ab925a1242 / 1010 такой файл или каталог no0 / merged /*

Есть идеи, почему?

1 Ответ

1 голос
/ 02 апреля 2019

Вам не нужно называть второй этап.

Как выглядит ваша сборка, зависит от того, как вы ее настроили, а я ее не знаю.Но вы можете сделать следующее:

  • запустить первый этап как отдельный Dockerfile
  • после последнего запуска RUN добавить RUN ls -lart -> это должно напечатать содержимое каталога, и выможете проверить, действительно ли существует / app / dist

В остальном ваш код выглядит хорошо.

...