我有一個 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 使它根本不運行,但它找不到對其中一個包的參考。
任何想法如何避免這種情況?
uj5u.com熱心網友回復:
好的,我想通了。安裝顯然不關心.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"'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407328.html
標籤:
