在Heroku上免费部署ASP.NET Core(使用Docker和CircleCI)
2019-04-16 12:52
766 查看
创建 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_USERNAMEHeroku注册邮箱
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/
相关文章推荐
- ASP.NET Core Docker jexus nginx部署-CentOS实践版
- ASP.NET Core Docker jexus部署-CentOS实践版
- ASP .NET CORE 部署linux 系统上的所需要的sdk 使用链接
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
- Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
- ASP.NET Core开发-Docker部署运行
- Docker + Jenkins 持续部署 ASP.NET Core 项目
- 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据
- asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
- 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署
- AspNetCoreapi 使用 Docker + Centos 7部署
- 【.NET Core】Docker Jenkins ASP.NET Core自动化部署
- ASP.NET Core部署前期准备 使用Hyper-V安装Ubuntu Server 16.10
- 使用Jexus 5.8.2在Centos下部署运行Asp.net core
- ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)