当前位置: 首页 > news >正文

代理注册公司网站模版wordpress 模板选择器

代理注册公司网站模版,wordpress 模板选择器,wordpress 能做什么,网页制作师招聘本文选自『.NET大牛之路』知识星球#xff0c;发布于2022年05月25日。今天我们一起来写 Dockerfile 构建一个 ASP.NET Core 应用镜像#xff0c;同时还会将镜像发布到 Docker Hub 仓库。1创建示例 Web 应用程序为了演示#xff0c;我们先创建一个 ASP.NET Core 应用程序发布于2022年05月25日。今天我们一起来写 Dockerfile 构建一个 ASP.NET Core 应用镜像同时还会将镜像发布到 Docker Hub 仓库。1创建示例 Web 应用程序为了演示我们先创建一个 ASP.NET Core 应用程序PS D:\Samples dotnet new web -o AspNetDemo 已成功创建模板“ASP.NET Core Empty”。正在处理创建后操作... 在 D:\Samples\AspNetDemo\AspNetDemo.csproj 上运行 “dotnet restore”...正在确定要还原的项目…已还原 D:\Samples\AspNetDemo\AspNetDemo.csproj (用时 77 ms)。 已成功还原。项目创建好了检查一下看看是否能正常运行PS D:\Samples cd .\AspNetDemo\ PS D:\Samples\AspNetDemo dotnet run 正在生成... info: Microsoft.Hosting.Lifetime[14]Now listening on: https://localhost:7000 info: Microsoft.Hosting.Lifetime[14]Now listening on: http://localhost:5276 info: Microsoft.Hosting.Lifetime[0]Application started. Press CtrlC to shut down. info: Microsoft.Hosting.Lifetime[0]Hosting environment: Development info: Microsoft.Hosting.Lifetime[0]Content root path: D:\Samples\AspNetDemo\打开输出提示的地址 https://localhost:7000浏览器正常显示 “Hellow World”说明应用程序正常。然后我们在 AspNetDemo 目录中添加一个 Dockerfile 文件为下文作准备。2依赖本地环境构建镜像我们可以在 DockerHub 找到我们需要的 ASP.NET Core 运行时基础镜像现在要把我们的 AspNetDemo 应用通过镜像的方式发布利用我们之前学过的 Docker 知识我们很自然会想到这样的思路通过 dotnet publish 命令打包发布文件然后把发布文件复制到 ASP.NET Core 运行时基础镜像中。于是我们先在本地bin/Publish 目录生成好发布文件PS D:\Samples\AspNetDemo dotnet publish -c release -o bin/Publish正在确定要还原的项目…所有项目均是最新的无法还原。AspNetDemo - D:\Samples\AspNetDemo\bin\release\net6.0\AspNetDemo.dllAspNetDemo - D:\Samples\AspNetDemo\bin\Publish\然后 Dockerfile 文件可以这样写FROM mcr.microsoft.com/dotnet/aspnet:6.0 WORKDIR /app COPY bin/Publish . ENTRYPOINT [dotnet, AspNetDemo.dll]开始构建镜像PS D:\Samples\AspNetDemo docker build -t aspnetdemo . [] Building 0.8s (8/8) FINISHED ...PS D:\Samples\AspNetDemo docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE aspnetdemo latest 62c8c40cbc70 33 seconds ago 208MB试试在本地使用该镜像运行容器PS D:\Samples\AspNetDemo docker run -d -p 80:80 aspnetdemo a4d67637585c67384a6c7a3a9e8a39acc345253730ce22f39b7afdedec353397打开浏览器访问 localhost 效果如下看起来还不错。3多阶段构建镜像相信很多童鞋已经想到了上面依赖本地的开发环境构建镜像存在的问题了。我们前面构建的 aspnetdemo 镜像是先在本地生成好了发布的文件再复制到镜像里的。这样存在的一个明显问题是其他人如果环境和我们的不一致构建的镜像就可能是一个有问题的镜像甚至直接构建失败。这种例子很常见比如同一套代码在你的机器上可以正常运行因为环境不同比如未安装指定的软件、未配置环境变量等在同事机器上可能就运行不起来。要避免这种情况生成发布文件甚至是开发测试的过程就不能依赖本地的开发环境来做了。即我们要把生成发布文件的过程也放到 Dockerfile 中去做。但由于 ASP.NET Core 运行时镜像不具有编译的能力所以我们需要把基础镜像换成 .NET SDK 镜像。这样就可以了吗这样也不是不可以但是 .NET SDK 镜像会比 ASP.NET Core 运行时镜像大很多我们可以比较一下PS D:\Samples\AspNetDemo docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE mcr.microsoft.com/dotnet/sdk 6.0 d3863aa157b5 6 days ago 736MB mcr.microsoft.com/dotnet/aspnet 6.0 683c56113596 8 weeks ago 208MB可以看到 .NET SDK 镜像比 ASP.NET Core 运行时镜像大了 500 多 MB这显然会大大降低镜像发布的速度。这时候我们就需要用到多阶段构建了思路是把镜像的构建分成多个阶段不同的阶段使用不同的基础镜像前面的所有阶段都只是为最后一个阶段做准备最终发布的也是最后一个阶段。下面使用多阶段构建来改写 Dockerfile参考如下# 阶段一build # 选择 SDK 镜像用于编译源码和生成发布文件 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /source # 复制源代码 COPY *.csproj *.cs . # 生成发布文件 RUN dotnet publish -c release -o /app# 阶段二final # 使用 ASP.NET Core 运行时镜像 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS final WORKDIR /app # 从 build 阶段复制生成好的发布文件 COPY --frombuild /app . ENTRYPOINT [dotnet, AspNetDemo.dll]这个 Dockerfile 还可以继续优化我将在下一节课讲镜像的优化时再改写它。为了观察效果我们稍微修改一下 Program.cs 中 Http 响应的内容var builder WebApplication.CreateBuilder(args); var app builder.Build();app.MapGet(/, () v2: Hello Docker!);app.Run();再次构建并运行容器PS D:\Samples\AspNetDemo docker image build -t aspnetdemo . [] Building 5.8s (13/13) FINISHED ...PS D:\Samples\AspNetDemo docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE aspnetdemo latest d6a596b1514d 55 seconds ago 208MBPS D:\Samples\AspNetDemo docker run -d -p 80:80 aspnetdemo e9b9045299f5a3b7614cb3cee91b00ebe67a066b1f65eff46369fa1844b1d824打开浏览器访问 localhost 验证一下效果可以看到我们虽然把生成发布文件的过程放到了 Dockerfile 中但通过多阶段构建最后构建出来的镜像也是 208M和前面一样。所以我们可以把编译运行所需要的环境配置都写到 Dockerfile 中这样可以保证任何一台机器都可以顺利构建镜像且不管谁来构建相同的源代码构建出来的镜像都是一样的。4发布镜像最后我们可以把构建好的镜像发布到自己的 Docker 仓库这里以 Docker Hub 为例实际生产环境请发布到自己的私有仓库。先在 Docker Hub 创建一个 Repositry推送镜像前需要在本地登录一下PS D:\Samples\AspNetDemo docker login Authenticating with existing credentials... Login Succeeded然后给我们的镜像打上一个标签默认是latestPS D:\Samples\AspNetDemo docker tag aspnetdemo liamwang/aspnetdemo # 也可以指定标签docker tag aspnetdemo:latest liamwang/aspnetdemo:latest然后推送到远程仓库PS D:\Samples\AspNetDemo docker push liamwang/aspnetdemo The push refers to repository [docker.io/liamwang/aspnetdemo] e68e6a7d93c2: Pushed ace5cec48f84: Pushed 17aff088b762: Pushed 9a515fdf7f03: Pushed c4d9ca739af5: Pushed 3f94255da7c2: Pushed 608f3a074261: Pushed latest: digest: sha256:dc479f2e52d48b3a81c0a83b5c740a085b299d046f268d21bb61c5bcfa5ae608 size: 1787 PS D:\Samples\AspNetDemo这步完成后可以在 Docker Hub 上看到已发布的镜像然后我们可以到任意一台服务器 pull 该镜像运行容器了。5小结本节课我们以 ASP.NET Core 应用为例先是用依赖本地环境的方式构建了镜像分析了这种方式存在的问题然后讲了如何使用多阶段构建来解决这个问题最后演示了如何把已经构建好的镜像发布到自己的 Docker 镜像仓库。下节课我们来解析和理解镜像的分层理解镜像的分层可以帮助我们优化镜像的构建过程也有助于制作更优质的镜像。
http://www.yutouwan.com/news/380014/

相关文章:

  • 嘉定网站建设哪家好app是网站吗
  • 中国建设银行对公网站首页海安网站建设
  • 宝塔批量建站工具公司怎么建立网站吗
  • 旅行社网站建设规划方案做外贸哪个网站要办信用卡的
  • 网站开发硬件成本河北建设局网站首页
  • 中国林业建设工程网站做企业网站什么软件好
  • 公司手机版网站学校网站开发必要性与意义
  • 建设网站多少钱 郑州最好网页设计培训
  • 接网站建设单子的网站网站建设与维护 许宝良
  • 建立网站有哪些步骤?最好免费高清视频在线观看
  • 做长老环的网站女教师遭网课入侵直播
  • 北仑网站网页建设域名服务器上存放着internet主机的
  • 天津宇昊建设集团有限公司网站北京到安阳的火车票时刻表查询
  • 学校做网站的目的ftp地址格式怎么写
  • 建设银行余额查询网站设计师网站推荐家装
  • 建立简单的网站网站开发分为哪几块
  • 网站制作基本规则互联网网络推广
  • html制作企业宣传网站jf厂高仿手表网站
  • 重庆建设工程公司网站公司网站建设属于软件销售
  • 直播软件下载网站数字博物馆网站建设内容
  • 网站设计 西安网站页面管理
  • app网站开发哪里有seo搜索优化公司排名
  • 公司官方网站建设网站建设规划书模板
  • 衡阳网站建设要点推广济南建设网站平台
  • 做php网站用什么软件wordpress 变量
  • 网上怎么自己做网站仿站建设
  • 如何做彩票网站的教程资阳市建设局网站
  • 网络和网站的区别iis做的网站模板
  • 广州白云网站建设公司wordpress的404
  • 文稿写作网站快速建网站