使用 docker 部署 AspNetCore 應(yīng)用:使用alpine鏡像并加入健康檢查和瘦身
前言#
使用 docker 部署 AspNetCore 應(yīng)用已經(jīng)是標(biāo)配了,之前我一直使用 mcr.microsoft.com/dotnet/aspnet:8.0 這類鏡像,簡單粗暴,不過可以使用 alpine 進(jìn)一步優(yōu)化鏡像大小。
很多開源工具的 docker 都有健康檢查,這次我順便也給加上了。
PS: 本文的例子項(xiàng)目來自一個(gè)差點(diǎn)被砍掉的項(xiàng)目「IdentityServerLite」,后面我會寫個(gè)文章介紹一下~
添加健康檢查#
注冊服務(wù)
builder.Services.AddHealthChecks();
配置中間件
app.MapHealthChecks("/healthz");
之后測試一下,本地運(yùn)行后訪問 http://host:port/healthz 可以看到 Healthy 字樣
修改 docker-compose#
在應(yīng)用配置下面增加 healthcheck 配置
這個(gè)鏡像 mcr.microsoft.com/dotnet/aspnet 里自帶了 wget ,所以直接用這個(gè)來請求健康檢查接口就完事了,如果用 curl 還得去安裝。
version: '3.6' services: web: image: ${DOCKER_REGISTRY-}web container_name: ids-lite restart: always environment: - ASPNETCORE_ENVIRONMENT=Production - ASPNETCORE_URLS=http://+:80 build: context: . volumes: - .:/app networks: - swag healthcheck: test: ["CMD-SHELL", "wget --spider http://localhost:80/healthz || exit"] interval: 10s timeout: 5s retries: 5 networks: swag: name: swag external: true
換成 alpine 基礎(chǔ)鏡像#
還沒有配置CICD之前,我使用了 FrameworkDependent 的方式來搭配 docker 部署,詳見之前的文章: Asp-Net-Core開發(fā)筆記:FrameworkDependent搭配docker部署
換成 alpine 可以減少一半鏡像體積,從 240MB 減少到 100MB 左右。
修改 dockerfile
在 8.0 后面加 -alpine 就行了
FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS base RUN apk add --no-cache icu-libs WORKDIR /app EXPOSE 80 EXPOSE 443 FROM base AS final WORKDIR /app COPY . . ENTRYPOINT ["./IdsLite.Api"] ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
重新發(fā)布#
之前在本機(jī)發(fā)布的時(shí)候,運(yùn)行時(shí)選的是 linux-x64
這樣發(fā)布出來的可執(zhí)行文件是依賴 glibc 的
但是 alpine 基礎(chǔ)鏡像里是 musl libc
所以需要選擇 linux-musl-x64 這個(gè)運(yùn)行時(shí),然后重新發(fā)布
dotnet publish -r linux-musl-x64
搞定~
參考資料#
https://www.cnblogs.com/podolski/p/16603177.html=======================================================================================
相關(guān)知識
使用 docker 部署 AspNetCore 應(yīng)用:使用alpine鏡像并加入健康檢查和瘦身
夏季使用變色鏡的危害
使用減肥產(chǎn)品 要當(dāng)心6種瘦身藥物成分
孕婦應(yīng)怎么合理使用電腦
上海平安健康(檢測)中心PET-MR分子影像臨床應(yīng)用研討峰會圓滿召開
老人適合用按摩器嗎 使用不當(dāng)反傷身
藥枕有益身體健康 使用需注意這些
塑料茶杯的使用壽命與健康環(huán)保影響探討
冬季眼睛干燥 使用眼藥水有禁忌
女性夏季怎么健康使用衛(wèi)生巾
網(wǎng)址: 使用 docker 部署 AspNetCore 應(yīng)用:使用alpine鏡像并加入健康檢查和瘦身 http://www.u1s5d6.cn/newsview17278.html
推薦資訊
- 1發(fā)朋友圈對老公徹底失望的心情 12775
- 2BMI體重指數(shù)計(jì)算公式是什么 11235
- 3補(bǔ)腎吃什么 補(bǔ)腎最佳食物推薦 11199
- 4性生活姿勢有哪些 盤點(diǎn)夫妻性 10425
- 5BMI正常值范圍一般是多少? 10137
- 6在線基礎(chǔ)代謝率(BMR)計(jì)算 9652
- 7一邊做飯一邊躁狂怎么辦 9138
- 8從出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7826