在Heroku上免費部署ASP.NET Core(使用Docker和CircleCI)

建立 ASP.NET Core應用

使用命令行便可建立一個模板項目linux

dotnet new webapi

完整代碼 https://github.com/Ibro/AspNetCoreHerokuDocker
能夠直接forkgit

配置Docker文件

參考Docker官方文檔https://docs.docker.com/engine/examples/dotnetcore/github

因爲Heroku不能很好的運行ENTRYPOINT命令
因此咱們修改web

ENTRYPOINT ["dotnet", "aspnetapp.dll"]

docker

CMD dotnet aspnetapp.dll

最終的Dockerfile 大概是這個樣子的:api

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名稱、選擇地區,便可完成建立
此處,我建立的app名稱爲netcoreappasp.net

https://img2018.cnblogs.com/blog/474029/201904/474029-20190416124841128-1903776802.jpg

設置CircleCI

0.在項目根目錄下建立circleci文件夾,在文件夾中建立config.yml文件,配置以下:curl

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登陸ui

2.左側菜單選擇Add Projects,CircleCI會掃描Github的倉庫,咱們能夠看到fork的AspNetCoreHerokuDocker

https://img2018.cnblogs.com/blog/474029/201904/474029-20190416124702733-514445383.png

3.點擊該項目後面的Set Up Project按鈕進入下一步

4.選擇linux系統,再選擇下方 Start building按鈕,開始builing

5.開始前爲CircleCI項目設置環境變量
HEROKU_USERNAME Heroku註冊郵箱
HEROKU_API_KEY 在Heroku我的信息中能夠找到
HEROKU_APP_NAME 咱們在Heroku中建立的app名稱

https://img2018.cnblogs.com/blog/474029/201904/474029-20190416124809345-1940074567.png

6.開始build,大約1-2分鐘完成

訪問項目

在Heroku中,打開建立的app,在右上角點擊open app便可在線訪問
或者直接輸入https://app名稱.herokuapp.com/訪問

https://img2018.cnblogs.com/blog/474029/201904/474029-20190416124906805-1673550607.jpg

原文地址

https://codingblast.com/hosting-asp-net-core-on-heroku-with-dockercircleci-for-free/

相關文章
相關標籤/搜索