我正在考虑在Heroku平台上运行我的C#服务的可能性...
是否有任何人有使用这种解决方案的经验?
有一些Heroku buildpacks使用Mono来运行.NET和C#。以下是我制作的一个:https://github.com/friism/heroku-buildpack-mono
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
现在有一个官方Heroku buildpack用于使用project.json文件和kpm包管理器构建ASP.NET 5(Core)应用程序。Mono被捆绑用于运行时执行。
示例用法:
$ heroku create --buildpack http://github.com/heroku/dotnet-buildpack.git
$ git push heroku master