Warum kann Docker-compose lokale Dateien nicht in den Container kopieren?

4317
A_V

Ich baue eine einfache DotnetCore-Anwendung mit Docker-Compose-Unterstützung mit VS2017.

Ich habe zwei Dockerfile, eine für die App und eine für einen NGINX-Proxy. Darüber hinaus gibt es eine docker-compose.yml-Datei, die beide zusammenfasst.

Dies ist die Aspnetcore-App Dockerfile, es gibt viele COPY-Anweisungen und sie funktionieren alle einwandfrei!

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"] 

Dies ist die nginx Dockerfile, die Dateien nicht richtig kopieren kann. Stattdessen wird der folgende Fehler ausgegeben:

COPY fehlgeschlagen: stat /var/lib/docker/tmp/docker-builder780242597/nginx.conf: keine solche Datei oder Verzeichnis. # 1859

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

Ich habe versucht, dieses Dockerfile selbst zu erstellen, und es funktioniert, aber wenn ich Docker-Compose verwende, wird der obige Fehler angezeigt.

So sieht die Datei docker-compose.yml aus

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 

Wenn Sie das gesamte Projekt betrachten möchten, handelt es sich um eine Dotnetcore Websocket-Server-Testanwendung mit einem Server und einer Clientanwendung.

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

Kann mir jemand sagen, was ich falsch mache, damit Docker diesen bestimmten Fehler ausgibt?

0

1 Antwort auf die Frage

1
A_V

Es scheint, dass dies ein Fehler ist.

Ich habe hier die Lösung gefunden:

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

Dabei wurde einfach das Dockerfile verschoben, das Probleme auf der Stammebene der docker-compose.yaml-Datei hatte.