当前位置: 首页 > 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://wiki.neutronadmin.com/news/380014/

相关文章:

  • 深圳微网站如皋网站建设招标
  • 东莞网站优化建设团队wordpress图片自动居中
  • 商城网站开发合同厦门百度竞价开户
  • 房屋自建设计哪个网站好近期国际新闻
  • 外贸网站系统中山移动网站建设多少钱
  • 关于加强机关网站建设浙江网站建设前十的公司
  • 网站建设工期时间表太原cms模板建站
  • 那个建设网站好北京注册公司核名网站
  • 哈尔滨建站模板源码帮人做项目的网站
  • 网站后台密码怎么修改湖南省建设厅气源适配性目录2022
  • 上海网站建站建设个人做网站要备案吗
  • 网站建设最快多长时间中信建设有限责任公司建筑院
  • 从做网站可以用现在的名称吗网站建设核心系统
  • 用jsp和mysql做网站刀模 东莞网站建设
  • 南宁网站定制开发数商云是外包吗
  • seo建站h5如何做网站
  • 重庆勘察设计协会网站中国十大房地产公司排名
  • 成都建设局网站首页移动端网站宽度做多大
  • Wordpress 采集 gofairwordpress 头部优化
  • 匈牙利网站后缀国外购物网站哪个最好
  • vs简单的网站开发wap手机网站建设公司
  • 做韩国外贸网站洛阳电商网站建设公司排名
  • 沈阳个人网站制作企业型网站中的文章更新是指什么
  • 做网站开发教程青岛网络优化代理
  • 网站仿做移动互联网应用开发工程师
  • 潜江公司做网站m2c是什么意思
  • 智云鸟网站建设什么样企业需要网站建设
  • 专业的网站建设案例网页游戏排行傍
  • 济南哪个公司做网站好新民正规网站建设价格咨询
  • 长沙专业做网站较好的公司宁波有没有开发网站的公司