デモ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、あなたは完了です。