Docker 容器的 Dockerfile 構建文件說明
Dockerfile 編寫
# 請參閱 https://aka.ms/containerfastmode 以了解 Visual Studio 如何使用此 Dockerfile 構建圖像以加快調試速度
# base 階段
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
# 安裝字體庫
RUN apt-get update && apt-get install -y libfontconfig1
# build 階段
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
# 環境變量
ENV PATH="${PATH}:/root/.dotnet/tools"
# 還原項目
WORKDIR /src
COPY ["zgcwkj.Demo/zgcwkj.Demo.csproj", "zgcwkj.Demo/"]
RUN dotnet restore "zgcwkj.Demo/zgcwkj.Demo.csproj"
# 複制到容器目錄
COPY . .
# 構建項目
WORKDIR "/src/zgcwkj.Demo"
RUN dotnet build "zgcwkj.Demo.csproj" -c Release -o /app/build
# 構建數據庫
WORKDIR "/src/zgcwkj.Data"
RUN dotnet tool install -g dotnet-ef
#RUN dotnet ef migrations add init
RUN dotnet ef database update
RUN cp -r DataDB.db /app
# publish 階段
FROM build AS publish
WORKDIR "/src/zgcwkj.Demo"
RUN dotnet publish "zgcwkj.Demo.csproj" -c Release -o /app/publish /p:UseAppHost=false
# final 階段
FROM base AS final
# 切換工作目錄
WORKDIR /app
# 複制 publish 階段的文件
COPY --from=publish /app/publish .
# 複制 build 階段的文件
COPY --from=build /app/DataDB.db .
# 默認入口命令
ENTRYPOINT ["dotnet", "zgcwkj.Demo.dll"]Dockerfile 說明
| 指令 | 說明 |
|---|---|
| RUN | 執行命令 |
| COPY | 複制命令 |
使用 Docker 構建鏡像
構建
docker build -f zgcwkj.Demo/Dockerfile -t zgcwkjdemo .
運行
docker run -it -p 53111:80 zgcwkjdemo:latest
導出
docker save -o zgcwkjdemo.tar zgcwkjdemo:latest
導入
docker load -i zgcwkjdemo.tarx版權屬於:zgcwkj
本文鏈接:https://www.zgcwkj.com/archives/201.html
轉載聲明:請注明本文章的標題及內容的出處和聲明,謝謝
評論已關閉