美文网首页
asp.net core 7.0举例 docker window

asp.net core 7.0举例 docker window

作者: 吉凶以情迁 | 来源:发表于2024-01-11 11:43 被阅读0次

    环境准备

    window 用docker desktop
    https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
    window11
    环境这方面确实有点要求高了,windows上只能玩玩docker engine ,没办法
    下面是环境需求

    • WSL 版本 1.1.3.0 或更高版本。

    • Windows 11 64 位:家庭版或专业版 21H2 或更高版本,或者企业版或教育版 21H2 或更高版本。

    • Windows 10 64 位:

      • 我们建议使用家庭版或专业版 22H2(内部版本 19045)或更高版本,或者企业版或教育版 22H2(内部版号 19045)或更高版本。
      • 最低要求是家庭版或专业版 21H2(内部版本 19044)或更高版本,或者企业版或教育版 21H2(内部版本 19044)或更高版本。
    • 在 Windows 上打开 WSL 2 功能。有关详细说明,请参阅Microsoft 文档.

    • 成功运行需要以下硬件先决条件 Windows 10 或 Windows 11 上的 WSL 2:

    wsl

    wsl.exe -l -v

    image.png
    切换版本
    wsl.exe --set-default-version 2

    代码配置

    第一次踩坑笔记

    DockerFile

    # 使用官方 .NET SDK 作为基础镜像
    FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
    WORKDIR /app
    
    # 将项目文件复制到镜像中
    COPY . ./
    
    
    ARG build_channel=XX
    RUN dotnet publish -c $build_channel -o /app
    
    # 构建运行时镜像
    FROM mcr.microsoft.com/dotnet/aspnet:7.0
    WORKDIR /app
    COPY --from=build-env /app.
    
    # 启动应用程序
    ENTRYPOINT ["dotnet", "webapi.dll"]
    

    如果包含aot需要加上这玩意

    #RUN dotnet tool install -g dotnet-runtime
    # 将项目文件复制到镜像中
    COPY . ./
    # AOT
    #ENV PATH="${PATH}:/usr/local/bin"
    RUN apt-get update && apt-get install -y gcc g++ zlib1g-dev\
        && export PATH="${PATH}:/usr/local/bin"
    

    编译

    docker build -t webapi --build-arg build_channel=MYCHANNEL .
    
    image.png

    参考
    https://mcr.microsoft.com/en-us/product/dotnet/aspnet/about
    https://github.com/dotnet/dotnet-docker/tree/main/samples/aspnetapp
    提示
    You intended to execute a .NET SDK command:
    2023-08-18 13:35:04 No .NET SDKs were found.
    可能是目录不对。

    官方案例
    https://raw.githubusercontent.com/dotnet/dotnet-docker/main/samples/aspnetapp/Dockerfile

    # Learn about building .NET container images:
    # https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
    FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
    WORKDIR /source
    
    # copy csproj and restore as distinct layers
    COPY aspnetapp/*.csproj .
    RUN dotnet restore --use-current-runtime  
    
    # copy everything else and build app
    COPY aspnetapp/. .
    RUN dotnet publish --use-current-runtime --self-contained false --no-restore -o /app
    
    
    # final stage/image
    FROM mcr.microsoft.com/dotnet/aspnet:7.0
    WORKDIR /app
    COPY --from=build /app .
    ENTRYPOINT ["dotnet", "aspnetapp.dll"]
    

    最后文件越高越大了11g ,先从简单的入手吧。。

    代码

    相关文章

      网友评论

          本文标题:asp.net core 7.0举例 docker window

          本文链接:https://www.haomeiwen.com/subject/dqstodtx.html