4

我正在检查在 Heroku 平台上运行我的 C# 服务的可能性......

有没有人有这种解决方案的经验?

4

3 回答 3

3

有一些 Heroku buildpacks 使用 Mono 来运行 .NET 和 C#。这是我构建的一个:https ://github.com/friism/heroku-buildpack-mono

于 2013-04-25T18:51:39.140 回答
1

您可以创建一个 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

为了这些命令:

  1. 创建 Docker 映像并在其中构建项目的发布
  2. 使用您的凭据连接到 Heroku 的 docker 注册表
  3. 为您的图像创建一个新标签
  4. 将您的图像发布到您的 Heroku 应用程序

但是,如果您的机器不支持 Docker,您也可以使用 CircleCI 来运行这些命令。更多详细信息: https ://www.codingnagger.com/2018/02/21/continuous-delivery/

于 2018-03-22T14:41:27.373 回答
0

现在有一个官方的Heroku buildpack,用于使用 project.json 文件和 kpm 包管理器构建 ASP.NET 5 (Core) 应用程序。Mono 被捆绑用于运行时执行。

示例用法:

$ heroku create --buildpack http://github.com/heroku/dotnet-buildpack.git
$ git push heroku master

如果它有 project.json,buildpack 会将您的应用程序检测为 ASP.NET 5。如果您要构建的源代码包含多个 project.json 文件,您可以使用 .deployment 或设置 $PROJECT 配置变量来控制构建哪个。

于 2017-12-15T17:29:25.763 回答