dockerミラーの構築時にプロキシサーバを使用する


背景紹介
最近、社内ネットワークにdockerを介して1つの導入が必要です.Netcoreアプリケーションは、イントラネットサーバが外部ネットワークにアクセスする問題を解決するのに時間がかかった後、コードをサーバに配置し、docker-cliを通じてアプリケーションミラーを構築する準備をしていましたが、構築ステップがrestoreに達すると、コマンドはずっと詰まっていて、元はdocker buildの時にシステムエージェントを歩かなかったのです.
Dockerfile
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY  ./ ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
RUN ddotnet ef database update -p .\ProjectFolder\ProjectFile.csproj

# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "ProjectFile.dll"]

FROM microsoft/dotnet:aspnetcore-runtime

プロセスの実行
>> docker build .

出力結果
Step 1/13 : FROM microsoft/dotnet:sdk AS build-env —> 08657316a4cd Step 2/13 : WORKDIR/app —> Using cache —> 5ec5d1f4f275 Step 3/13 : COPY ././—> 733 eb 7 bbdaa 7 Step 5/13:RUN dotnet restore//カードはこちら
シナリオの変更
次のコマンドを使用します.
 docker build --build-arg http_proxy=http://proxy_address:proxy_port --build-arg https_proxy=http://proxy_address:proxy_port .

修正後の出力
Sending build context to Docker daemon 1.044MB Step 1/12 : FROM microsoft/dotnet:sdk AS build-env —> 08657316a4cd Step 2/12 : WORKDIR/app —> Using cache —> 5ec5d1f4f275 Step 3/12 : COPY ././—> ed9be3bd8315 Step 4/12 : RUN dotnet restore —> Running in dd57897dac80 Restore completed in 24.38 sec for/app/ProjectFolder/ProjectFile.csproj. Removing intermediate container dd57897dac80 —> c8cc22c13b64 Step 5/12 : COPY . ./—> 8e79de63d907 Step 6/12 : RUN dotnet publish -c Release -o out —> Running in e39e1c5d411c Microsoft ® Build Engine version 16.2.32702+c4012a063 for .NET Core Copyright © Microsoft Corporation. All rights reserved.
大成功!
関連記事
Fiddlerを利用してネットワークエージェントとしてネットワークエージェントを通じてイントラネットサーバのdockerインストールとミラーダウンロードを行う