zoukankan      html  css  js  c++  java
  • .net core容器添加时区和libgdi+和下载加速

    国内.net core镜像下载加速

    比如对于mcr.microsoft.com/dotnet/core/aspnet:3.1,下载是走的azure全球cdn,国内访问很慢。
    国内访问可以把mcr.microsoft.com改为mcr.azk8s.cn
    如docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1改为docker pull mcr.azk8s.cn/dotnet/core/aspnet:3.1速度就会快上很多

    修改时区和安装libgdi+

    根据基础镜像不同添加的命令也不同

    对于alpine,比如mcr.azk8s.cn/dotnet/core/aspnet:3.1-alpine是以alpine为基础镜像的,alpine是最小系统镜像,所以用这个做基础镜像能将镜像整体大小控制的得很小。

    alpine的包管理器是apk,安装软件命令是apk add

    RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" repositories  
        && apk --no-cache add tzdata zeromq 
        && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
        && echo 'Asia/Shanghai' > /etc/timezone

    第一行是替换软件源为华为云镜像源

    第二行是安装tzdata和zeromq

    第三行是软链接上海时区到/etc/localtime

    第四行是写入上海到/etc/timezone

    安装libgdi+

    RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories &&   
        apk --no-cache add terminus-font tzdata zeromq && 
        apk --no-cache add libgdiplus --update-cache --repository 'https://mirrors.huaweicloud.com/alpine/edge/testing/' --allow-untrusted && 
        ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && 
        echo 'Asia/Shanghai' > /etc/timezone && 
        ln -s /usr/lib/libgdiplus.so.0.0.0  /usr/lib/libgdiplus.so

    和上边不同的多了第三行和最后一行
    第三行是安装libgdi+  由于libgdi+在alpine的软件源里是属于测试版的,所以要指定仓库来源为华为云的测试版软件源
    最后一行,软连接libgdiplus.so.0.0.0 为libgdiplus.so

    安装了libgdi+和修改时区的完整Dockerfile

    FROM mcr.azk8s.cn/dotnet/core/aspnet:3.1-alpine AS base
    WORKDIR /app
    EXPOSE 80
    COPY . .
    RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories &&   
        apk --no-cache add terminus-font tzdata zeromq && 
        apk --no-cache add libgdiplus --update-cache --repository 'https://mirrors.huaweicloud.com/alpine/edge/testing/' --allow-untrusted && 
        ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && 
        echo 'Asia/Shanghai' > /etc/timezone && 
        ln -s /usr/lib/libgdiplus.so.0.0.0  /usr/lib/libgdiplus.so
    ENTRYPOINT ["dotnet", "MyHost.dll"]

    仅修改时区的Dockerfile

     FROM mcr.azk8s.cn/dotnet/core/aspnet:3.1-alpine AS base
     WORKDIR /app
     EXPOSE 80 
    COPY . .18
    RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" repositories && apk --no-cache add tzdata zeromq && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone ENTRYPOINT ["dotnet", "MarketingManagement.HttpApi.Host.dll"]

    .net core的默认基础镜像是debian,包管理器是apt,和ubuntu一致

    直接上完整dockerfile

    安装libgdi+ 修改时区版

    FROM mcr.azk8s.cn/dotnet/core/aspnet:3.1 AS base
    WORKDIR /app
    EXPOSE 80
    COPY . .
    #设置时区
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

    #安装libgdi+
    RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so RUN sed -i "s@http://deb.debian.org@http://repo.huaweicloud.com@g" /etc/apt/sources.list && sed -i "s@http://security.debian.org@http://repo.huaweicloud.com@g" /etc/apt/sources.list && apt-get update && apt-get install -y --allow-unauthenticated apt-utils libgdiplus nano && rm -rf /var/lib/apt/lists/* ENTRYPOINT ["dotnet", "MyHost.dll"]

    因为需要更新软件包列表,整体大小也比alpine大很多,所以构建速度明显比alpine慢很多

  • 相关阅读:
    TCP/IP——IP网络协议简记
    TCP/IP——基础概念简记
    TCP/IP——链路层简记
    linux——(8)数据流重定向、管道命令
    linux——(7)了解shell
    linux——(6)vim与vi
    linux——(5)文件与文件系统的压缩与打包
    linux——(4)磁盘与文件系统管理
    linux——(3)文件与目录管理
    大数据--Spark原理
  • 原文地址:https://www.cnblogs.com/turingguo/p/12654879.html
Copyright © 2011-2022 走看看