簡體   English   中英

在 docker 容器中運行 dotnet watch 會破壞 Nuget package 參考

[英]Running dotnet watch run in docker container breaks Nuget package references

我有一個 docker-compose 文件,我在其中啟動數據庫,asp.net 服務器與dotnet watch運行如下:

backend:
   image: mcr.microsoft.com/dotnet/sdk:6.0

   depends_on:
     - db
   environment:
     DB_HOST: db
     DB_NAME: db
     DB_USERNAME: ${DB_USER}
     DB_PASSWORD: ${DB_PW}
     ASPNETCORE_ENVIRONMENT: Development
   ports:
     - 7293:7293
   volumes:
     - ./:/app
   working_dir: /app
   command: 'dotnet watch run --urls "http://0.0.0.0:7293"'

如您所見,我將整個項目目錄安裝在容器中。

現在這運行良好並重新加載更改。

但是一旦容器在 Visual Studio 中啟動,所有對 Nuget 包的引用都會被標記為紅色,並且無法再解析。

有一個.dockerignore文件,但我認為這里的任何內容都不是真正相關的。 但無論如何,這里是:

.dockerignore

**/.classpath
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/azds.yaml
**/bin
**/charts
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md

我知道這與項目恢復有關,但我嘗試過的沒有任何幫助。 --no-restore 使它根本不運行,但它找不到對其中一個包的引用。

任何想法如何避免這種情況?

好的,我想通了。 安裝顯然不關心.dockerignore 我必須排除掛載中的obj目錄。 所以我只是像這樣掛載一個空目錄。

backend:
    ...
    volumes:
      - ./:/app
      - /app/obj # <- directory won't be mounted
    working_dir: /app
    command: 'dotnet watch run --urls "http://0.0.0.0:7293"'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM