Es erscheint RUN
in einem dockerfile
kann mein Volume-Verzeichnis nicht sehen, wo ENTRYPOINT
kann.RUN-Befehl kann nicht auf Volumes zugreifen
Hier ist ein Beispiel mit einem dockerfile
und docker-compose.yml
, die das Problem mit sich:
FROM microsoft/dotnet:2.0-sdk
EXPOSE 5000
ENV ASPNETCORE_ENVIRONMENT=Development
WORKDIR /src/testing
RUN dotnet restore
ENTRYPOINT ["dotnet", "run", "--urls=http://0.0.0.0:5000"]
docker-compose.yml
:
MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.
ERROR: Service 'doctnetcore-api-project' failed to build: The command '/bin/sh -c dotnet restore' returned a non-zero code: 1
:
version: "3.4"
services:
doctnetcore-api-project:
build: ./api/
container_name: doctnetcore-api-project
image: doctnetcore-api-project:development
restart: 'always'
networks:
- mynetwork
volumes:
- /api/src:/src
networks:
mywebmc:
external:
name: mynetwork
Als ich docker-compose up
betreibe ich erhalte eine Fehlermeldung unten
Wenn ich auskommentieren RUN dotnet restore
und führen Sie dotnet restore
manuell vor dem Ausführen docker-compose
, funktioniert es gut.
Also aus welchem Grund auch immer erscheint RUN
kann mein Volume-Verzeichnis nicht sehen und ENTRYPOINT
kann mein Volume-Verzeichnis sehen.
Erwarten Sie, dass der Inhalt des Volumes Teil des Hashes ist, der zum Identifizieren des Containers verwendet wird, sodass, wenn sich diese Inhalte ändern, der Befehl 'dotnet restore' erneut aufgerufen wird? Wenn dies der Fall ist, möchten Sie nicht, dass es sich um ein Volume handelt, sondern möchten es so kopieren, dass es als Teil des Containerstatus betrachtet wird. –