創建 ASP.NET Core應用
使用命令行即可創建一個模板項目
dotnet new webapi
完整代碼 https://github.com/Ibro/AspNetCoreHerokuDocker
可以直接fork
配置Docker文件
參考Docker官方文檔https://docs.docker.com/engine/examples/dotnetcore/
由於Heroku不能很好的運行ENTRYPOINT
命令
所以我們修改
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
為
CMD dotnet aspnetapp.dll
最終的Dockerfile
大概是這個樣子的:
FROM microsoft/dotnet:2.2-sdk AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/dotnet:2.2-aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
CMD dotnet AspNetCoreHerokuDocker.dll
創建Heroku 應用
注冊賬號
Heroku官方地址https://www.heroku.com/
沒有賬號的注冊一個,我在注冊的時候發現qq郵箱是不允許的。
注冊完畢會在注冊郵箱收到確認地址,打開輸入密碼,即完成注冊。
創建應用
登錄賬號會跳轉到個人控制台,創建一個app
輸入app名稱、選擇地區,即可完成創建
此處,我創建的app名稱為netcoreapp
設置CircleCI
0.在項目根目錄下創建circleci
文件夾,在文件夾中創建config.yml
文件,配置如下:
version: 2
jobs:
build:
machine: true
steps:
- checkout
# build image
- run: |
docker info
docker build -t aspnetapp -f Dockerfile .
# deploy the image
- run: |
docker login --username=$HEROKU_USERNAME --password=$HEROKU_API_KEY registry.heroku.com
docker tag aspnetapp registry.heroku.com/$HEROKU_APP_NAME/web
docker push registry.heroku.com/$HEROKU_APP_NAME/web
curl https://cli-assets.heroku.com/install.sh | sh
heroku container:release web -a $HEROKU_APP_NAME
1.CircleCI官方網址 https://circleci.com ,使用Github登錄
2.左側菜單選擇Add Projects
,CircleCI會掃描Github的倉庫,我們可以看到fork的AspNetCoreHerokuDocker
3.點擊該項目后面的Set Up Project
按鈕進入下一步
4.選擇linux
系統,再選擇下方 Start building
按鈕,開始builing
5.開始前為CircleCI項目設置環境變量
HEROKU_USERNAME
Heroku注冊郵箱
HEROKU_API_KEY
在Heroku個人信息中可以找到
HEROKU_APP_NAME
我們在Heroku中創建的app名稱
6.開始build,大約1-2分鍾完成
訪問項目
在Heroku中,打開創建的app,在右上角點擊open app
即可在線訪問
或者直接輸入https://app名稱.herokuapp.com/
訪問
原文地址
https://codingblast.com/hosting-asp-net-core-on-heroku-with-dockercircleci-for-free/