Почему Docker-compose не может скопировать локальные файлы в контейнер

4222
A_V

Я строю простое приложение DotnetCore с поддержкой docker-compose с VS2017.

У меня есть два Dockerfile, один для приложения и один для прокси NGINX. Кроме того, существует файл docker-compose.yml, который объединяет оба эти элемента вместе.

Это Dockerfile для приложения aspnetcore, там много операторов COPY, и все они работают правильно!

FROM microsoft/dotnet:2.0-runtime AS base WORKDIR /app  FROM microsoft/dotnet:2.0-sdk AS build WORKDIR /src COPY CoreServer.sln ./ COPY CoreServer/CoreServer.csproj CoreServer/ RUN dotnet restore -nowarn:msb3202,nu1503 COPY . . WORKDIR /src/CoreServer RUN dotnet build -c Release -o /app  FROM build AS publish RUN dotnet publish -c Release -o /app  FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "CoreServer.dll"] 

Это Dockerfile nginx, который не может правильно копировать файлы. Вместо этого он выводит следующую ошибку:

Сбой копирования: stat /var/lib/docker/tmp/docker-builder780242597/nginx.conf: такого файла или каталога нет. # 1859

FROM nginx  WORKDIR /etc/nginx  COPY nginx.conf ./ COPY server.crt ./ COPY server.key ./ 

Я попытался собрать этот Dockerfile сам по себе, и он работает, но когда я использую docker-compose, он выдает ошибку выше.

Вот так выглядит файл docker-compose.yml

version: '3'  services: coreserver: image: coreserver build: context: . dockerfile: CoreServer/Dockerfile expose: - "5000"  nginx: build:  context: . dockerfile: nginx/Dockerfile ports: - "80:80" - "443:443" links: - coreserver 

Если вы хотите ознакомиться с полным проектом, то это тестовое приложение для веб-сокета dotnetcore с сервером и клиентским приложением.

https://github.com/avboivin/WssCoreServer/tree/master/server

Может кто-нибудь сказать мне, что я делаю неправильно, чтобы docker send выдал эту конкретную ошибку?

0

1 ответ на вопрос

1
A_V

Казалось бы, это ошибка.

Я нашел решение здесь:

https://github.com/docker/for-mac/issues/1922#issuecomment-355364451

Который просто перемещал Dockerfile, у которого были проблемы на корневом уровне файла docker-compose.yaml.

Похожие вопросы