创建 ASP.NET Core 应用
使用命令行即可创建一个模板项目
dotnet new webapi
完整代码 https://github.com/Ibro/AspNetCoreHerokuDocker
可以直接 fork
配置 Docker 文件
参考 Docker 官方文档
由于 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.YAML 文件, 配置如下:
- 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://www.cnblogs.com/talentzemin/p/10716312.html