创建 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/

在Heroku上免费部署ASP.NET Core(使用Docker和CircleCI)的更多相关文章

  1. 自动部署Asp.Net Core到Docker

    原文链接:个人博客:自动部署Asp.Net Core至Docker 本文简介 最近在开发一个管理系统,代码框架是用的前后台分离的方式 后台使用的是Asp.Net Core平台,开发所有业务,向前台提供 ...

  2. ASP.NET Core使用Docker进行容器化托管和部署

    一.课程介绍 人生苦短,我用.NET Core!今天给大家分享一下Asp.Net Core以Docker进行容器化部署托管,本课程并不是完完全全的零基础Docker入门教学,课程知识点难免有没覆盖全面 ...

  3. CentOS7上部署ASP.Net Core 2.2应用

    前言 在CentOS7上部署ASP.Net Core应用是我的技术路线验证的一部分,下一个产品计划采用ASP.Net Boilerplate Framework开发.因此需要求提前进行一下技术验证,在 ...

  4. 在 Azure 上部署 Asp.NET Core Web App

    在云计算大行其道的时代,当你要部署一个网站时第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core的网站呢?Azure 的 Web App ...

  5. Web Server 在IIS上部署ASP.NET Core项目

    在IIS上部署ASP.NET Core项目 一.配置应用程序池为无托管: 二.安装ASPNETCoreModule:(核心) 下载地址:https://go.microsoft.com/fwlink/ ...

  6. .NET开发框架(五)-IIS上部署ASP.NET Core项目教程

    系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助! 1.打开VS,创建项目,选择ASP.NET ...

  7. Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

    第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用. 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutori ...

  8. wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败

    继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题. 上传的文件超过50M以后前端就报错了,没有状态返回,也没有响 ...

  9. linux 环境下部署 Asp.Net Core 项目 访问 oralce 数据库

    1.ASP.NET Core 是一个跨平台的高性能开源框架,可以部署到Linux上,那项目部署在Linux上有哪些好处呢? 1.linux硬件需求小,大部分版本免费,成本低. 2.linux的用户管理 ...

随机推荐

  1. org.springframework.boot.web.server.WebServerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\ADMINI~1\AppData\Local\Temp\2\

    问题原因:springboot创建临时文件找不到对应的目录 解决办法:1. 重新指定临时文件位置  java -Djava.io.tempdir=D:/tmpdir -jar -my_project. ...

  2. 1.C++基础(C、C++)

    1.命名空间 所谓namespace,是指标识符的各种可见范围.C++标准程序库中的所有标识符都被定 义于一个名为std的namespace中. 命名空间std封装的是标准程序库的名称,标准程序库为了 ...

  3. 第一次接触Android Studio

    生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4390905.html

  4. js中创建命名空间的几种写法

    在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子: var sayHello = function() { return 'Hel ...

  5. 真正可用的安卓webview html图片上传限制突破处理(拍照+相册都可以用)

    两篇起步使用webview参考文章,第一篇解除限制,但会调用外部浏览器打开链接,第二篇 覆盖shouldOverrideUrlLoading return true https://www.jb51. ...

  6. 接口测试工具-tamper data

    1.火狐浏览器插件 安装:1)打开火狐浏览器-alt键-附加组件-搜索tamper data-安装-重启火狐浏览器-在工具下打开tamper data 使用:start tamper 示例:http: ...

  7. RSA公私钥获取模数和质数

    实际项目中,发现前端在生成公钥对象的时候并不是使用这种方式,而是通过对应的模数跟质数来构造公钥对象的,这样的话,需要进一步将生成的公钥取出对应的模数和质数.openssl.java api都可以将质数 ...

  8. React项目中使用hot-react-loader

    在构建react项目时,默认使用的webpack-dev-serve有热刷新功能,但是局限是修改一处会使整个页面刷新 当引入了react-hot-loader时,可以实现局部刷新,即同个页面上,某一处 ...

  9. CentOS 7 安装Redis4.0

    redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用 redis存储数据的方法是以key-value的形式 value类型支持字符串,列表,哈希等多种类型 环境 : CnetOS7    ...

  10. 关于linux系统CPU篇--->上下文切换

    1.什么是CPU上下文切换? linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行,当然这些任务实际上并不是真的同时在运行,而是因为系统在很短的时间内,将CPU轮流分配给它们,造成多任 ...