【问题标题】:Hosting .NET Core on Heroku (.msproj)在 Heroku (.msproj) 上托管 .NET Core
【发布时间】:2017-05-04 21:31:02
【问题描述】:
我最近在我想要托管的 .NET Core 中构建了我的第一个从开始到排序-完成的 MVC 应用程序。
但是,我能找到的唯一免费托管可能性是使用 Heroku,它似乎只支持使用 @ 的 .NET Core(或 Visual Studio)的早期版本987654323@.
因此,我一直在网上四处寻找将我的 .msproj 项目转换为 project.json 项目的方法。
有没有其他人遇到过这种情况,或者听说过解决方案?
【问题讨论】:
标签:
c#
heroku
asp.net-core-mvc
.net-core
【解决方案2】:
您可以创建一个 Dockerfile 来生成可在 Heroku 上运行的 Docker 映像。
FROM microsoft/aspnetcore-build:2.0 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/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet <YOUR_API_NAME>.dll
然后您可以直接使用这些 Docker 命令将其发布到 Heroku:
docker build -t aspnetapp <YOUR_API_NAME>
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
按照这些命令的顺序:
- 创建 Docker 映像并在其中构建项目的发布版
- 使用您的凭据连接到 Heroku 的 docker 注册表
- 为您的图片创建一个新标签
- 将您的图像发布到您的 Heroku 应用程序
但是,如果您的机器不支持 Docker,您也可以使用 CircleCI 来运行这些命令。更多细节在这里:
https://www.codingnagger.com/2018/02/21/continuous-delivery/