使用命令行便可建立一個模板項目linux
dotnet new webapi
完整代碼 https://github.com/Ibro/AspNetCoreHerokuDocker
能夠直接forkgit
參考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官方地址https://www.heroku.com/
沒有帳號的註冊一個,我在註冊的時候發現qq郵箱是不容許的。
註冊完畢會在註冊郵箱收到確認地址,打開輸入密碼,即完成註冊。app
登陸帳號會跳轉到我的控制檯,建立一個app
輸入app名稱、選擇地區,便可完成建立
此處,我建立的app名稱爲netcoreapp
asp.net
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
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/