ネットコアアプリケーション(アリペイ)ドッカーに公開します

デモAlipayの枝がちょうど完了した、と私は行くドッカーにそれを展開するために、私はあなたに、以下の手順を紹介します。

プロフィールを作成

最も重要な設定ファイルは次のように彼は読み込み、Dockerfileです。

# 第一部分是编译并发布项目
# 以微软.Net Core SDK作为基础镜像, 并且以build作为别名
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
# 切换build镜像工作目录到/app
WORKDIR /app
# 拷贝sln和csproj项目文件
COPY *.sln .
COPY AliPay/*.csproj ./AliPay/
# Restore项目用到的包
RUN dotnet restore
# 拷贝项目文件到镜像里面相应到目录
COPY AliPay/. ./AliPay/
# 切换build镜像工作目录到/app/AliPay
WORKDIR /app/AliPay
# 以Release模式发布应用到out文件夹
RUN dotnet publish -c Release -o out

# 第二部分是启动项目
# 以微软.Net Core运行环境作为基础镜像, 并且以runtime作为别名
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
# 切换runtime镜像工作目录到/app
WORKDIR /app
# 把build镜像里面编译出来的文件拷贝到runtime镜像
COPY --from=build /app/AliPay/out ./
# 暴漏端口
EXPOSE 8000
# 启动应用
# ENTRYPOINT ["dotnet", "AliPay.dll", "--server.urls", "http://*:8000"]
ENTRYPOINT ["dotnet", "AliPay.dll"]

次のようにそれはまた、より.dockerignoreことがあります

bin\
obj\

パッケージ化されたミラー

Dockerfileを作成した後、ミラーを作成することは非常に簡単になります。

docker build -t alipayimg .

二つのパラメータ内側:

  • -t:作成するターゲット画像の名前を指定します。
  • 。:ファイルディレクトリDockerfile、あなたは絶対パスDockerfileを指定することができます

コンテナを開始

最後にブートイメージ:

docker run -d -p 8666:8000 --name alipay alipayimg

パラメータ:

  • -d:イメージアップの後、バックグラウンドで実行されています
  • -p 8666:8000:ポート、ホストポート間のマッピング:コンテナ港
  • 名前は、コンテナを開始します。--nameアリペイ
  • alipayimg:使用イメージ名

プログラミングの概要

最初は、私はオンラインプレゼンテーションに従って、次のコマンドを使用すると、ポートが指定されています:

dotnet AliPay.dll --server.urls http://*:8000

そして、それは無効となっています。

Githubのはない方法は、最終的には、コード内でポートコーディングされていない、Microsoft.Extensions.Configuration.CommandLineを追加する必要性を述べたが、それでも動作しません。追加が完了しました:

Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.ConfigureAppConfiguration(config =>
        {
            config.AddJsonFile("alipay.json");
            // config.AddCommandLine(args);
        });
        webBuilder.UseUrls("http://*:8000");
        webBuilder.UseStartup<Startup>();
    });

アクセスアプリケーション

ブラウザを開いて、http:// localhost:8666、あなたは完了です。

おすすめ

転載: www.cnblogs.com/jerryqi/p/11778645.html