RUN命令无法访问卷

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RUN命令无法访问卷相关的知识,希望对你有一定的参考价值。

看来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可以看到我的卷目录。

答案

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

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

以上是关于RUN命令无法访问卷的主要内容,如果未能解决你的问题,请参考以下文章

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

ESP32 M5 超级问卷星:轻松收集数据

ESP32 M5 超级问卷星:轻松收集数据

ESP32 M5 超级问卷星:轻松收集数据

svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法(代码片段

ubuntu16.04 yum报错:There are no enabled repos. Run “yum repolist all“ to see the repos you have.(代码片段