前言
最近透過 Visual Studio 2019 來建置 docker image 是沒問題的,但是如果透過 Command 來下 docker build 就會發生以下的錯誤,
COPY failed: file not found in build context or excluded by .dockerignore: stat solution/yourProject.csproj: file does not exist
於是直接在專案的目錄下,直接開啟 Command 然後下,
1 | docker build -t rmimage -f Dockerfile . |
的確就會出現 COPY Failed 的錯誤,
研究
Dockerfile 如下,
1 | FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base |
依錯誤來看,應該是Visual Studio 建立方案時,方案與專案目錄的關係,所以 ….
解法1
即然是 Folder 的關系,所以就往上一層就可以了,所以 Command 就依 How Visual Studio builds containerized apps 改成往上一層即可(從 1個點 改成 2 個點 )
1 | docker build -t rmimage -f Dockerfile .. |
解法 2
後來又查到 Getting “Program does not contain a static ‘Main’ method suitable for an entry point” when building using docker, why?
所以就將 Dockerfile 從專案的目錄移到方案的目錄,再下 docker build 就 OK 了哦!
當然,如果覺得這樣麻煩,可以在建立方案時,勾選將解決方案與專案置於相同目錄中的選項也可以哦!
參考資料
Getting “Program does not contain a static ‘Main’ method suitable for an entry point” when building using docker, why?
How Visual Studio builds containerized apps