• .net core 发布到docker


    1. 安装docker-desktop,windows环境安装包

    官方网站:https://www.docker.com/

    2.注册登陆Docker账号

    安装成功后,在官方网站注册一个账号,使用账号登陆docker,然后windows的Hyper-V虚拟机就有一个新的虚拟机了

    注意:登陆Docker不能使用邮箱作为账号,否则使用Docker的编译发布镜像的时候,会出现无法验证的错误

    Get https://registry-1.docker.io/v2/microsoft/dotnet/manifests/latest: unauthorized: incorrect username or password

    3.创建core的项目,确保能在本地运行。测试项目绑定本地的5000端口

         public static IWebHost BuildWebHost(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                .UseUrls("http://*:5000")
                    .UseStartup<Startup>()
                    .Build();

    4.使用vs发布生成代码

    5.发布成功后,publish文件夹添加Dockerfile文件,文件内容如下

    # 基于microsoft/dotnet:latest构建Docker Image
    FROM microsoft/dotnet:latest
     
    # 进入docker中的/usr/local/src目录
    RUN cd /usr/local/src
     
    # 创建DockerWebAPI目录
    RUN mkdir DockerTest
     
    # 设置工作路径
    WORKDIR /usr/local/src/DockerTest
     
    # 将当前文件夹下的所有文件全部复制到工作目录
    COPY *.* ./
     
    # 向外界暴露5000端口
    EXPOSE 5000
     
    # 执行dotnet DockerWebAPI.dll命令
    CMD ["dotnet", "DockerTest.dll"]
    microsoft/dotnet:latest 是最新的包,打包后的镜像文件可能有1G以上

    microsoft/dotnet:2.1-aspnetcore-runtime 2.1的运行时包,比较小

    其他.net core 镜像环境可以自己去找

    6.发布到docker,红字部分为docker镜像名称

    docker build -t dotnet/dockertest .

    7.启动镜像

    docker run -it -p 8080:5000 dotnet/dockertest

    成功后如下图所示

    -----------------------------------------

    附加:

    错误1:

    启动镜像时,*.deps.json缺少

    解决办法:

    项目文件csproj,添加配置

        <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>

    修改配置后从步骤4开始重新发布!

  • 相关阅读:
    分布式系统实践解读丨详解高内聚低耦合
    Git:改变世界的一次代码提交
    一分钟带你认识深度学习中的知识蒸馏
    99%的人都能看懂的分布式系统「补偿」机制
    一大波人气博主袭来,现场直播华为全联接2020!
    快速了解前端开发HTML的正确姿势
    华为云IoT智简联接,开启物联世界新纪元
    从一个小程序说起2 C++快速入门03
    从一个小程序说起 C++快速入门02
    PE格式详细讲解6(上) 系统篇06|解密系列
  • 原文地址:https://www.cnblogs.com/stealth7/p/10369439.html
Copyright © 2020-2023  润新知