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

中关村在线官方网站电脑后台管理系统登录入口

中关村在线官方网站电脑,后台管理系统登录入口,wordpress装了英文版怎么转中文,平湖市网站建设一.前言最近一直在研究和实践ASP.NET Core、Docker、持续集成。在ASP.NET Core 和 Dcoker结合下遇到了一些坑#xff0c;在此记录和分享#xff0c;希望对大家有一些帮助。二.中间镜像我前面写过一个 《ASP.NET Core Docker 零基础持续集成 》的教程。里面我们通过持续… 一.前言最近一直在研究和实践ASP.NET Core、Docker、持续集成。在ASP.NET Core 和 Dcoker结合下遇到了一些坑在此记录和分享希望对大家有一些帮助。二.中间镜像我前面写过一个 《ASP.NET Core Docker 零基础持续集成 》的教程。里面我们通过持续集成工具Jenkins构建Docker镜像并运行容器采用的是Docker Compose来进行编排构建运行的Visual Studio 2017添加Docker支持是采用的Docker Compose。细心的朋友可能会发现每次构建完毕以后通过docker images命令查询可以发现多了许多没有名称的镜像。这些都是构建过程中的中间镜像我们可以在构建完成以后 进行统一删除。删除所有无名称镜像docker rmi $(docker images -f danglingtrue -q)此命令应当加在构建的最后一步示例echo ---------------Remove-Orphans------------------ docker-compose -f src/docker-compose.yml -f src/docker-compose.override.yml  -p alipaydemo down --rmi local --remove-orphansecho ---------------Publishing...------------------ docker-compose -f src/docker-compose.yml -f src/docker-compose.override.yml  -p alipaydemo up -d --buildecho ---------------Clear-Images...------------------ docker rmi $(docker images -f danglingtrue -q)执行之后会看到以下效果这是非常有必要的因为如果每次构建都残留一些中间镜像会额外消耗我们的磁盘空间的。 后来的我们 主演井柏然 / 周冬雨 / 田壮壮 猫眼电影演出 广告 购买 三.固定容器外部端口这里主要讲的是在自动化构建的过程中通过docker compose来运行容器的外部端口而不是直接通过docker run命令来指定。我们通过Visual Studio 2017添加Docker支持Docker Compose通过Docker Compose编排构建运行容器我们会发现每次构建以后运行的容器的外部端口都不是固定的比如32774、32775、32776等等。这对于我们设置了Nginx反向代理和API Gateway等配置的肯定是十分不方便的我们每次构建完毕以后还要去改这些配置不是扯淡吗。所以我们需要固定我们容器运行的外部端口我们可以通过改变docker compose的yml文件来固定容器的外部端口。Visual Studio 2017 添加的Docker支持所生成的文件有如下结构我是用的版本为VS2017 15.6.5。如果是更早的版本添加Docker支持可能会多出一个docker-compose.ci.build.yml文件其实这一步没必要目前的最新的VS2017已经移除了该文件。我们固定容器外部端口需要修改的是docker-compose.override.yml文件我们需要修改的是ports。默认为ports:- 80这个80端口只是容器的内部端口我们进行如下修改来知道容器运行时映射到服务器的端口也就是外部端口ports:- 32775:80通过上面的设置我们将容器的外部端口指定为32775这样我们在构建完成以后容器运行以后的外部端口都将会为32775无需再次修改Nginx反向代理等配置。四.设置镜像版本我们的应用程序具有不同的版本号我们不同版本的应用程序构建出来的镜像应该也是具有不同的版本的我们可以通过设置镜像的Tag来表示不同的版本我们同样可以在docker compose的yml里面进行设置这次修改的是docker-compose.yml文件我们直接在镜像的名称后面设置Tag语法为image: 镜像名称:Tag比如我设置一个名为alipaydemo的镜像Tag为V1image: alipaydemo:v1完整的配置分享version: 3services:alipay.demo.pcpayment:    image: alipaydemopcpayment:v1    container_name: alipaydemocontainer    build:      context: .      dockerfile: Alipay.Demo.PCPayment/Dockerfile五.设置容器名称我们在通过docker compose运行的容器将会被指定一个默认的容器名称如果是第四节的配置那么容器的默认名称为alipaydemopcpayment.alipay.demo.pcpayment.build_1具有非常一长串此时我们可以自己来指定这个容器的名称同样我们需要修改docker-compose.yml文件设置容器名称的命令格式为container_name: 容器名称完整的配置分享version: 3services:alipay.demo.pcpayment:    image: alipaydemopcpayment:v1   container_name: alipaydemocontainer   build:      context: .     dockerfile: Alipay.Demo.PCPayment/Dockerfile通过上面的配置我们将容器名称设置为了alipaydemocontainer六.设置容器重启策略某一天我对服务器进行了重启重启以后发现通过Docker运行的服务无法访问了然后查看原因发现Docker服务没有开机自启启动了Docker以后发现容器又没有自动启动。1.设置Docker开机自启我们可以直接通过chkconfig命令来设置Docker开启自启chkconfig docker执行成功如下2.设置容器随Docker启动我们要让容器随Docker启动就必须设置容器的重启策略为always我们通过docker compose来运行容器时可以在yml里面指定。打开docker-compose.override.yml文件添加配置restart: always完整的配置示例version: 3services:alipay.demo.pcpayment:    restart: always    environment:- ASPNETCORE_ENVIRONMENTProduction    ports:- 32775:80七.Docker的重启策略1.设置容器重启策略这里讲的设置容器重启策略主要是通过命令来进行交互并非第六节讲的通过docker compose来设置重启策略是对第六节的一个扩展阅读。我们可以在使用docker run命令时通过--restart参数来设置重启策略docker run -d --restartalways alipaydemodocker run -d --restarton-failure:10 alipaydemo第一条命令代表容器退出时总是重启容器第二条代表在容器非正常退出时重启容器最多重启10次。对于已经运行的容器可以通过docker update命令来指定docker update --restartalways alipaydemo 2.Docker容器的重启策略Docker容器的重启策略是面向生产环境的一个启动策略在开发过程中可以忽略该策略。Docker容器的重启都是由Docker守护进程完成的因此与守护进程息息相关。Docker容器的重启策略如下no默认策略在容器退出时不重启容器on-failure在容器非正常退出时退出状态非0才会重启容器on-failure:3在容器非正常退出时重启容器最多重启3次always在容器退出时总是重启容器unless-stopped在容器退出时总是重启容器但是不考虑在Docker守护进程启动时就已经停止了的容器3.Docker容器的退出状态码docker run的退出状态码如下0表示正常退出非0表示异常退出退出状态码采用chroot标准125Docker守护进程本身的错误126容器启动后要执行的默认命令无法调用127容器启动后要执行的默认命令不存在其他命令状态码容器启动后正常执行命令退出命令时该命令的返回状态码作为容器的退出状态码参考资料https://blog.csdn.net/taiyangdao/article/details/73076019八.设置自动交互我们在编写Dockerfile时可以通过RUN命令来运行一些命令由此我们可以通过运行apt-get等命令将一些必要的组件安装到我们的镜像之中比如lsof等。我们有如下配置RUN apt-get install lsof但是我们在安装一个组件时非常有可能遇到交互操作比如“Dou you want to xxx?[y/n]”等遇到这种将会中断我们的Docker镜像构建过程那么如何解决呢我们可以给命令指定--assume-yes来实现自动交互RUN apt-get install lsof --assume-yes持续集成自动化构建过程中如若不设置自动交互将会被中断使用apt-get install命令以前最好使用apt-get update更新一下避免出现问题。九.ASP.NET Core 生成图片问题大家应该知道目前.NET Core(2.0)还是没有System.Drawing程序集如果我们要使用Image等对象来完成生成图片验证码、图片二维码等操作只有通过第三方编写的组件ZKWeb.System.Drawing便是其中一个我们使用它以后我们在windows上运行良好无需其他额外的操作。但是我们一到Linux运行或者使用Dockerdotnet镜像使用的是ubantu环境运行时会发现程序无法正常生成图片会出现异常这是因为我们的zk在Linux/Docker下运行需要安装一个名为 libgdiplus 的组件我们在构建Docker镜像的时候可以通过RUN命令使用apt-get命令进行安装RUN apt-get updateRUN apt-get install libgdiplus --assume-yesRUN cd /usr/lib RUN ln -s libgdiplus.so gdiplus.dllapt-get update是非常有必要的完整的Dockerfile配置提供给大家参考FROM microsoft/aspnetcore:2.0 AS base WORKDIR /app EXPOSE 80FROM microsoft/aspnetcore-build:2.0 AS build WORKDIR /src COPY Alipay.Demo.PCPayment.sln ./ COPY Alipay.Demo.PCPayment/Alipay.Demo.PCPayment.csproj Alipay.Demo.PCPayment/ RUN dotnet restore -nowarn:msb3202,nu1503 COPY . . WORKDIR /src/Alipay.Demo.PCPayment RUN dotnet build -c Release -o /appFROM build AS publish RUN dotnet publish -c Release -o /appFROM base AS finalWORKDIR /app COPY --frompublish /app .RUN apt-get updateRUN apt-get install libgdiplus --assume-yesRUN cd /usr/lib RUN ln -s libgdiplus.so gdiplus.dll ENTRYPOINT [dotnet, Alipay.Demo.PCPayment.dll]十.写在最后本文乃是我在实践ASP.NET Core Docker 持续集成过程中遇到的问题和解决之道完完全全的实战经验、总结希望能帮助到大家。关于实践ASP.NET Core Docker 构建持续集成大家可以看我的这一系列文章《ASP.NET Core Docker 零基础持续集成》。本文所说的实战是我在实践我的开源项目https://github.com/dotnetcore/Alipay.AopSdk.Core此项目及其演示项目通过持续集成自动化发布到Nuget和通过Docker运行。这个项目是一个支持.NET Core的支付宝的服务端SDK项目不仅仅提供支付能力还提供支付宝生活号、服务窗、行业合作等开发。觉得好的希望能给一个Star支持手动滑稽。最后分享给大家一个高效写博客的方法本文亦是用此来进行编写和发布http://www.cnblogs.com/stulzq/p/9043632.html原文地址https://www.cnblogs.com/stulzq/p/9059108.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com Reward 长按二维码向我转账 受苹果公司新规定影响微信 iOS 版的赞赏功能被关闭可通过二维码转账支持公众号。
http://www.yutouwan.com/news/37256/

相关文章:

  • 商城购物网站建设方案邯郸建移动网站费用
  • 网站分析论文建站程序
  • 网站打开403中国世界排名前100的大学
  • ftp上传网站 需要什么文件网页前端模板网站
  • 怎么建设游网站主页咸宁市做网站
  • 做电子商务网站需要什么手续科技设计公司网站模板
  • 如何做网站定位广州网站开发 找亦客公司优质
  • 怎么建设国际网站网站全站搜索代码
  • 白酒网站源码网站开发实训报告总结2021
  • 免费建立企业网站网站绑定微信公众号
  • 汉口网站建设制作网站设计工
  • 企业网站后台管理软件网站建设提案怎么写
  • 临沂市建设工程多图联审系统 网站怎么用ps做网站超链接
  • 网站开发研究背景网页设计作业文件
  • 网站建设完成确认书展会搭建设计案例网站
  • 网站建设知识论文代理游戏网站
  • 网站搭建网平面设计学徒工资一般多少
  • 古腾堡布局的网站相关网站怎么做
  • 工会 网站 建设合肥做推拉棚网站推广
  • 域名出售网站阿里云域名注册流程
  • 昌邑网站建设seo自学网视频教程
  • 创建网站开发公司服务器做网站数据库
  • 网站建设与管理ppt模板下载wordpress免费建站
  • 合肥科技职业学院网站建设与管理做app模板网站有哪些内容
  • seo查询是什么商城网站不易优化
  • 网站开发的背景知识与相关技术做p2p投资理财的网站
  • 网站的锚点链接怎么做代运营公司
  • wap网站如何建设网站建设的核心是什么
  • 长春住房和城乡建设部官方网站关于动漫的网站建设
  • 无锡时光科技网站建设公司怎么样江苏林润建设工程有限公司网站