2

我试图制作一个简单的 docker-compose 文件来运行 net-core 2.2,看起来它正在工作,但是当我对文件进行更改时,它不会重新编译,因此我看不到任何更改。

Dockerfile

FROM microsoft/dotnet:latest

# Create directory for the app source code
RUN mkdir -p /usr/src/api
WORKDIR /usr/src/api

# Copy the source and restore dependencies
COPY . /usr/src/api
RUN dotnet restore

# Expose the port and start the app
EXPOSE 5000
ENTRYPOINT ["dotnet", "run", "--urls", "http://*:5000;http://*:5001"]
CMD [ "dotnet", "run" ]

码头工人撰写文件:

version: "3"
services:
    web:
      build:
        context: . 
        dockerfile: docker/dotnet/Dockerfile
      networks:
        - default
      ports:
        - "5000:5000"
      volumes:
        - .:/var/www/html

该项目是默认的dotnet new webapi -o playground --no-https

有什么想法或帮助吗?谢谢

4

2 回答 2

2

不幸的是,文件更改信息没有到达 docker 内部的 dotnet(必须查看内核内部结构以了解为什么 docker 命名空间在运行 inotify 时没有获取此信息)..(如果您在运行 docker 的 linux 主机上 -它应该是可行的)..

有一个关于 docker 的功能请求: https ://github.com/moby/moby/issues/18246

该线程中最好的解决方法是运行:https ://github.com/remy/nodemon#application-isnt-restarting (即在您的docker中运行nodemon -L) - 它还可以处理重新启动非节点应用程序)。

否则这是其他人的做法(让 vscode 在 F5 上为您重建它): https ://github.com/Microsoft/generator-docker/issues/130

于 2019-08-15T13:53:57.803 回答
0

默认情况下docker-compose不会重建图像。您可以通过运行来告诉它这样做docker-compose up --build。请参阅公开 docker-compose up --build 标志

于 2019-08-13T18:27:52.267 回答