RUN命令不能访问卷

它出现在dockerfile RUN无法看到我的卷目录在哪里ENTRYPOINT可以。

以下是一个dockerfiledocker-compose.yml ,它有这个问题:

 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

 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 

当我运行docker-compose up ,出现如下所示的错误:

 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 

如果我在运行docker-compose之前手动注释掉RUN dotnet restore并手动运行dotnet restore ,则工作正常。

所以无论出于什么原因,看起来RUN看不到我的卷目录, ENTRYPOINT可以看到我的卷目录。

Dockerfile中的语句在构build时执行(docker docker build ),此时没有卷存在。

相比之下,当您运行可访问潜在映射卷的容器( ENTRYPOINT docker run )时,会执行ENTRYPOINT