文章目錄
在 Debian container 中無法成功註冊微軟金鑰
最近部署在 debian base 中的 .NET Core application 有些異常,所以打算在 container 中使用 dotnet cli 做些測試,不過身為追求 Container 優化的工程師,一定是使用 multi-stage builds
來建立 image,所以 container 中僅有 .NET Core runtime 而沒有包含 dotnet cli 的 SDK,今天要紀錄的就是在安裝 .NET Core SDK 時遇到的問題
基本環境說明
- mcr.microsoft.com/dotnet/core/runtime:3.1.3
- .NET Core SDK 3.1.201
問題與解決方式
問題描述
執行
wget -O- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
後出現錯誤錯誤訊息
```txt root@9f771a7513d9:/# wget -O- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg bash: gpg: command not found --2020-04-13 02:45:21-- https://packages.microsoft.com/keys/microsoft.asc Resolving packages.microsoft.com (packages.microsoft.com)... 23.99.120.248 Connecting to packages.microsoft.com (packages.microsoft.com)|23.99.120.248|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 983 [application/octet-stream] Saving to: 'STDOUT' - 0% [ ] 0 --.-KB/s in 0s Cannot write to '-' (Broken pipe). ```
錯誤截圖
解決方式
aptt-get install -y gpg
安裝後即可成功註冊 key
心得
仔細看錯誤訊息可以發現有一段 bash: gpg: command not found
,揭露因為沒有安裝 gpg
所以 pipe 之後動作也就無法成功執行,連帶造成無法順利安裝 .NET Core SDK
但遇到問題當下,只看到 Cannot write to '-' (Broken pipe).
google 到的狀況提到大多是權限問題造成的,方向完全不對,當然最後也沒有解決問題,過了幾天重新 review 時才發現根本原因,紀錄一下提醒自己就算再急還是要持冷靜,別慌了手腳
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-03
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。