制作DockerImage存在的问题

我基本使用基于alpine的镜像,故以此镜像为例。

一、时区问题:

鉴于Docker Hub官方的Image都是0时区的,不符合中国东八区。

建议:

  1. 如果直接使用官方镜像,在启动时,直接加入环境变量 -e "TZ=Asia/Shanghai";
  2. 如果定制自己的镜像,在Dockerfile里加入修改时区的操作。

二、宋体中文支持:

1、Docker容器里面修改:

  1. 查看系统是否已经安装中文字体:fc-list :lang=zh,一般都是没有结果
  2. 安装字体软件:apk add ttf-dejavu fontconfig
  3. 查看所有字体:fc-list,会显示字体目录为 /usr/share/fonts
  4. 将我们需要的字体放入字体目录中,比如宋体Simsun.ttf(可以从网上下载)
  5. 启用字体:fc-cache
  6. 再次查看是否已安装中文字体:fc-list :lang=zh ,会显示/usr/share/fonts/SimSun.ttf: SimSun,宋体:style=Regular

2、写入Dockerfile,直接生成镜像:

在Dockerfile中,加入以下两句,镜像启动的时候就会已包含中文宋体。

RUN apk add --update --no-cache ttf-dejavu fontconfig && rm -rf /var/cache/apk/*
COPY simsun.ttf /usr/share/fonts/simsun.ttf

三、APK安装软件速度慢:

Linux服务器默认软件源都是官方源在国外,国内访问慢的很,影响Docker build 的效率。

1、直接修改软件源文件

在Dockerfile中加入run sed命令,替换软件源为阿里云:

RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories

然后你肯定要安装软件,可以使用下面命令 先update 后安装:

RUN apk add --update --no-cache ttf-dejavu fontconfig && rm -rf /var/cache/apk/*

2、安装软件命令apk后添加源地址

这个可能不会全部生效,可能某些还会去找官方源地址,所以不太建议使用。

apk add php7 --repository http://nl.alpinelinux.org/alpine/edge/testing/

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com

×

喜欢就点赞,疼爱就打赏