使用命令行便可建立一个模板项目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/