太阳城申博官网登入自定义构建基于.net core 的基础镜像

先说一个问题

本文来源:http://www.sss088.com/sports_ynet_com/

太阳城申博官网登入,当地的果农们一边摘桃,过秤,一边与客户讨价还价,还一边大把大把地数着票子,忙碌、辛苦并快乐着。  12月7日,36氪WISE2106独角兽大会进入第二天。  也就是说,通过中小学生自主探索微课在课堂“教”与“学”创新应用中的有效模式和方法,激发学生的创造性,全面提升教育质量,推进素质教育全面发展,充分发挥学生自身潜能,激发其学习成长的主动性,创造有利于创新人才成长的良好教育环境,实现全面发展。这款AR程序的用户中,医学工作者是医学老师和学生的两倍。

时间:2016-12-0709:24:15来源:新华社12月6日,北约在布鲁塞尔举行成员国外长会议。互联网+商品、互联网+体验、互联网+服务,构筑了门店的核心主体,并使苏宁门店具备了向消费者提供“互联网+”购物解决方案的能力。  Anatomy4D展示出AR技术可以和我们生活中的各个方面都进行结合,尤其是一些非常重要的领域,比如医学。  分析人士认为,相比国内市场动辄15倍以上动态PE,海外资产估值更便宜,并购资产PE通常在10倍左右,EV/EBITDA在7倍左右;同时海外环保公司技术领先,盈利较为稳定。

  他分析了这类寄给学生的电话卡主要分为两类。明代著名旅行家徐霞客当年曾慕名前来考察,在游记里写道:“晨饭于吴,遂出司南门,渡溪桥,西南向行,五里,有溪自西谷来,东注入大溪;有石梁跨其上,曰太子桥。2016年10月起,向全省电信用户普遍免费发送手机闪信提示累计673万条,针对固网通话发送前插风险语音提示累计122万多次,增强用户的主动防范意识,提升了客户感知。Rising4)》已经于6日正式发售,游戏也不仅仅只是割草游戏这么简单,随着剧情的深入,玩家还会遇到各式各样的BOSS,今天外媒XCageGame就为我们带来了《丧尸围城4》的全BOSS战斗视频,希望对玩家们有所帮助哦。

首先记录一个问题,今天在用 Jenkins 构建项目的时候突然出现包源的错误:

/usr/share/dotnet/sdk/2.2.104/NuGet.targets(114,5): error : Unable to load the service index for source /api_nuget_org/v3/index.json. [/....csproj]
/usr/share/dotnet/sdk/2.2.104/NuGet.targets(114,5): error :   The HTTP request to 'GET /api_nuget_org/v3/index.json' has timed out after 100000ms. [/....csproj]

nuget的包源无法访问(无法ping通),而我在一台服务器上访问/api_nuget_org/v3/index.json时则会自动重定向到/nuget_cdn_azure_cn/v3/index.json

但是打包机器执行dotnet restore却还是无法还原成功,即使指定包源后即dotnet restore -s /nuget_cdn_azure_cn/v3/index.json 能还原一部分包,部分包依旧无法还原

最后测试发现,包源只是部分地区无法访问,可以尝试切换源/使用Nuget.Config文件试试,当然最快的还是通过科学的方式访问~。

若本地 VS 的包管理器也无法正常使用,切换源(太阳城申博官网登入/nuget_cdn_azure_cn/v3/index.json)即可

再说另外一个问题

然后这篇文章其实是另外的一个问题,之前我构建了一个基础镜像包,基于FROM microsoft/dotnet:2.2-aspnetcore-runtime构建,而我构建时使用的sdk镜像是FROM microsoft/dotnet:2.2-sdk

9.23号(.net core 3.0发布)之前还能够正常构建,今天在解决了上面包源问题后,镜像构建成功并发布到服务器,却发现镜像无法启动起来。

报错信息如下

The specified framework 'Microsoft.NETCore.App', version '2.2.2' was not found.
  - Check application dependencies and target a framework version installed at:
      /usr/share/dotnet/
  - Installing .NET Core prerequisites might help resolve this problem:
      /go_microsoft_com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      /aka_ms/dotnet-download
  - The following versions are installed:
      2.2.0 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

既然说是版本问题,那就尝试着将基础进行修改为FROM microsoft/dotnet:2.2.2-aspnetcore-runtime,果然,重新构建后能够好好的运行起来了。

那么我是如何构建的基础镜像的,只需下面 3 个文件就搞定了。

阿里云镜像源

阿里云的软件包源,可用于一些基础镜像中没有的软件安装,写入到 sources.list 供后面使用

  • 文件:sources.list
deb /mirrors_aliyun_com/debian jessie main contrib non-free
deb-src /mirrors_aliyun_com/debian jessie main contrib non-free
deb /mirrors_aliyun_com/debian jessie-updates main contrib non-free
deb-src /mirrors_aliyun_com/debian jessie-updates main contrib non-free
deb /mirrors_aliyun_com/debian-security jessie/updates main contrib non-free
deb-src /mirrors_aliyun_com/debian-security jessie/updates main contrib non-free

一个包含图像库的 Dockerfile

基于dotnet:2.2.2 aspnetcore-runtime,并在其中安装 libgdiplus,设置时区,具体的可以根据自己的项目需要去构建

文件:Dockerfile

FROM microsoft/dotnet:2.2.2-aspnetcore-runtime
WORKDIR /app
COPY sources.list /app/sources.list
RUN rm -f /etc/apt/sources.list && mv sources.list /etc/apt/ && apt-get update -y && apt-get install -y libgdiplus && apt-get clean && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

# 时区设置
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# ENTRYPOINT ["./xxxxx.dll"]

使用脚本推送镜像到阿里云的容器镜像仓库

要推送镜像到阿里云,需要先去阿里云开通并创建命名空间
需要先登录云端镜像仓库 ,登录阿里云如下

文件名:build.sh (Linux添加执行权限 chmod +x ./build.sh)

export ALIYUN_DOCKER_CLOUD_URL=registry.cn-hangzhou.aliyuncs.com
export DOCKER_IMAGE_NAME=yimocoding/dotnet2.2.2-base
export BUILD_NUMBER=latest

docker build -t $DOCKER_IMAGE_NAME -f ./Dockerfile .
docker tag $DOCKER_IMAGE_NAME $ALIYUN_DOCKER_CLOUD_URL/$DOCKER_IMAGE_NAME:$BUILD_NUMBER
echo 推送镜像到云端
docker push $ALIYUN_DOCKER_CLOUD_URL/$DOCKER_IMAGE_NAME:$BUILD_NUMBER

echo '删除本地镜像'
docker rmi $DOCKER_IMAGE_NAME
docker rmi $ALIYUN_DOCKER_CLOUD_URL/$DOCKER_IMAGE_NAME:$BUILD_NUMBER

三个文件的目录结构

文件创建完成后,执行 build.sh 即可构建镜像并推送到阿里云的镜像仓库,若想提交到其他云仓库,修改脚本中的变量即可

示例文件:/github_com/yimogit/MeDocker/tree/dotnet

真是,人在家中坐,锅从天落,而为了更好的接锅,记录一二,免得到时候望码兴叹。

posted @ 2019-09-28 21:03  易墨  阅读(...)  评论(...编辑  收藏
Fork me on GitHub
申博最新网址 申博娱乐城直营网 www.288msc.com www.516sun.com 申博代理开户合作登入 www.1388msc.com
申博开户网登入 太阳城官网 申博电子游戏备用网址 申博管理登入 www.7788shenbo.com 申博游戏登录
申博太阳城亚洲登入 www.988msc.com 申博正网存取款直营网 申博www.sbc66.com直营网 申博电子游戏官网直营 申博网址