热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Heroku上免费部署ASP.NETCore(使用Docker和CircleCI)

创建ASP.NETCore应用使用命令行即可创建一个模板项目dotnetnewwebapi完整代码https:github.comIbroAspNetCoreHeroku

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

http://www.#.com/i/f04c0e0d3717f1fd937d73e2b2c9dcb71.jpg

设置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

http://www.#.com/i/f04c0e0d3717f1fd937d73e2b2c9dcb72.jpg

3.点击该项目后面的Set Up Project按钮进入下一步

4.选择linux系统,再选择下方 Start building按钮,开始builing

5.开始前为CircleCI项目设置环境变量
HEROKU_USERNAME Heroku注册邮箱
HEROKU_API_KEY 在Heroku个人信息中可以找到
HEROKU_APP_NAME 我们在Heroku中创建的app名称

http://www.#.com/i/f04c0e0d3717f1fd937d73e2b2c9dcb73.jpg

6.开始build,大约1-2分钟完成

访问项目

在Heroku中,打开创建的app,在右上角点击open app即可在线访问
或者直接输入https://app名称.herokuapp.com/访问

http://www.#.com/i/f04c0e0d3717f1fd937d73e2b2c9dcb74.jpg

原文地址

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


推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 如何彻底清除顽固软件如360
    本文详细介绍了如何彻底卸载难以删除的软件,如360安全卫士。这类软件不仅难以卸载,还会在开机时启动多个应用,影响系统性能。我们将提供两种有效的方法来帮助您彻底清理这些顽固软件。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
author-avatar
水儿本人_164
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有