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://blog.zgcwkj.cn/archives/201.html
转载声明:请注明本文章的标题及内容的出处和声明,谢谢
评论已关闭