「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
Dockerイメージを作成するファイル。
# コメント {命令} {引数}
# | 命令 | 説明 |
1 | FROM | 以降の命令で使う ベース・イメージ を指定する。 1行めを FROM 命令で指定する必要がある。 |
2 | MAINTAINER | 生成するイメージの Author (作者)フィールドを指定する。 |
3 | RUN | 2つの形式があり何れもコマンドを実行する |
4 | CMD | RUNと似ていて、3つの形式があり、コンテナ実行時のデフォルトを提供する。 |
5 | LABEL | イメージにキー・バリューのメタデータを追加する。 |
6 | EXPOSE | 特定のコンテナが実行時にポートをリッスンすることを Docker に伝える。 |
7 | ENV | 環境変数と値をセットできる(1つ、若しくは複数)。 |
8 | ADD | ファイルやディレクトリをコピーする。 |
9 | COPY | ADDと似ているが、リモート、自動解凍の機能が無い。 |
10 | ENTRYPOINT | CMDと同様、2つの形式があり、CMDと連携して使われる。 |
11 | VOLUME | 指定した名前でマウントポイントを作成し、 他から外部マウント可能なボリュームにする。 |
12 | USER | RUN、CMD、ENTRYPOINTの実行アカウントを指定する。 |
13 | WORKDIR | 作業ディレクトリ指定する(ENVを併用できる)。 |
14 | ARG | docker build コマンドで使う変数、フラグを定義する。 |
15 | ONBUILD | 次のビルドで実行するコマンドをイメージに仕込むことができるようになる。 要するに,親DockerfileのDockerfileコマンドを子Dockerfileのビルド時に実行できる。 |
16 | STOPSIGNAL | コンテナを終了時の、システム・コール・シグナルを設定する。 |
17 | HEALTHCHECK | ヘルスチェックを行う。 |
18 | SHELL | デフォルトのシェルを上書きする。cmd と powershell を sh に変更可能にする。 |
FROM microsoft/aspnetcore:2.0-stretch AS base WORKDIR /app EXPOSE 80 FROM microsoft/aspnetcore-build:2.0-stretch AS build WORKDIR /src COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"] RUN dotnet restore "WebApplication1/WebApplication1.csproj" COPY . . WORKDIR "/src/WebApplication1" RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "WebApplication1.dll"]
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"] RUN dotnet restore "WebApplication1/WebApplication1.csproj" COPY . . WORKDIR "/src/WebApplication1" RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "WebApplication1.dll"]