RUN命令无法访问卷

问题描述 投票:0回答:1

看来RUN中的dockerfile看不到我的卷目录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

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

所以无论出于什么原因,它出现RUN无法看到我的卷目录,ENTRYPOINT可以看到我的卷目录。

docker asp.net-web-api2 .net-core docker-compose dockerfile
1个回答
2
投票

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

相反,当您运行可访问可能映射的卷的容器(ENTRYPOINT)时,将执行docker run

© www.soinside.com 2019 - 2024. All rights reserved.