347 字
2 分鐘
[ASP.net core] 把 asp.net core app 推上 fly.io
自從 Heroku 取消免費 dyno 方案之後,客家人如我就逃竄到其他平台去了,後來我找到了 flyio,免費額度可以開 3 台 VM,扣掉一台保留作 build machine 還有兩台,綁卡可以增加到十台,其他像對外流量、硬碟空間等都還算夠用。
那接下來就是紀錄下把 Asp.net + react 專案部屬上 flyctl 的過程
建立專案
專案建立時選擇「搭載 React.js 的 ASP.net Core」

在建立一般 ASP.net 專案的時候會有「啟用 docker 支援的選項」,但是搭載 React.js的沒有,這部分我們等下會手動建立。
啟用 docker 支援
在專案上右鍵 > 加入 > docker 支援,選擇 Linux


完成後會自動打開 Dockerfile 文件,我們需要改裡面的內容:
在 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build 底下加上
# nodejs (build)RUN apt-get updateRUN apt-get install -y curlRUN curl -sL https://deb.nodesource.com/setup_lts.x | bash -RUN apt-get install -y nodejs在本地用 docker 測試
Properties > launchSettings.json
"Docker": { "commandName": "Docker", "launchBrowser": true, "launchUrl": "https://{ServiceHost}:44436", "publishAllPorts": false, "useSSL": false }上面的 port 44436 依專案而定,看加 docker 之前用哪個 port 跑的就是哪個 port。
Deploy to flyio
接下來我們可以直接發布到 flyio
flyctl launch首次 deploy 後會自動生成一個 fly.toml 檔案,有些情況下 listen port 會是錯的,要確定 internal_port 是 80
...[[services]] http_checks = [] internal_port = 80 ...再次 deploy 即可成功
flyctl deploy [ASP.net core] 把 asp.net core app 推上 fly.io
https://fuwari.vercel.app/posts/aspnetcore-react-flyio/