From 7598a5f9fc43bdffb696b988e01427f9737298eb Mon Sep 17 00:00:00 2001 From: Endial Fang Date: Fri, 17 Jul 2020 23:26:27 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E5=A2=9E=E5=8A=A0locals=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=EF=BC=9B=E6=9B=B4=E6=96=B0gosu=E5=AE=89=E8=A3=85=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=EF=BC=8C=E5=87=8F=E5=B0=91=E9=BB=98=E8=AE=A4=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 10-buster/.dockerignore => .dockerignore | 0 9-stretch/.dockerignore | 4 -- 9-stretch/Dockerfile | 85 ------------------------ 10-buster/Dockerfile => Dockerfile | 37 ++++++----- README.md | 6 +- 5 files changed, 25 insertions(+), 107 deletions(-) rename 10-buster/.dockerignore => .dockerignore (100%) delete mode 100644 9-stretch/.dockerignore delete mode 100644 9-stretch/Dockerfile rename 10-buster/Dockerfile => Dockerfile (76%) diff --git a/10-buster/.dockerignore b/.dockerignore similarity index 100% rename from 10-buster/.dockerignore rename to .dockerignore diff --git a/9-stretch/.dockerignore b/9-stretch/.dockerignore deleted file mode 100644 index b3e8a3d..0000000 --- a/9-stretch/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -.git -.gitignore -README.md -LICENSE \ No newline at end of file diff --git a/9-stretch/Dockerfile b/9-stretch/Dockerfile deleted file mode 100644 index 429c053..0000000 --- a/9-stretch/Dockerfile +++ /dev/null @@ -1,85 +0,0 @@ -FROM debian:stretch-slim - -ARG gosu_ver=1.12 - -LABEL \ - "Version"="v9" \ - "Description"="Docker image for Debian 9(Stretch)." \ - "Dockerfile"="https://github.com/colovu/docker-debian" \ - "Vendor"="Endial Fang (endial@126.com)" - -ENV GOSU_VERSION=${gosu_ver} \ - GPG_KEYS="0xB42F6819007F00F88E364FD4036A9C25BF357DD4" - -RUN set -eux; \ -# 启用非交互模式安装软件包,规避Readline/Teletype等警告 - export DEBIAN_FRONTEND=noninteractive; \ - \ - mv /etc/apt/sources.list /etc/apt/sources.list.bak; \ - echo '\ -deb http://mirrors.aliyun.com/debian/ stretch main contrib non-free \n\ -deb-src http://mirrors.aliyun.com/debian/ stretch main contrib non-free \n\ -deb http://mirrors.aliyun.com/debian/ stretch-updates main contrib non-free \n\ -deb-src http://mirrors.aliyun.com/debian/ stretch-updates main contrib non-free \n\ -deb http://mirrors.aliyun.com/debian/ stretch-proposed-updates main contrib non-free \n\ -deb-src http://mirrors.aliyun.com/debian/ stretch-proposed-updates main contrib non-free \n\ -deb http://mirrors.aliyun.com/debian/ stretch-backports main contrib non-free \n\ -deb-src http://mirrors.aliyun.com/debian/ stretch-backports main contrib non-free \n\ -' >/etc/apt/sources.list; \ - \ - apt update; \ - apt upgrade -y; \ - savedAptMark="$(apt-mark showmanual)"; \ - apt install -y locales; \ - \ - localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8; \ - \ - fetchDeps=" \ - ca-certificates \ - wget \ - gnupg \ - dirmngr \ - binutils \ - "; \ - apt install -y --no-install-recommends $fetchDeps; \ - \ - dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ - \ -# 安装软件包需要使用的GPG证书 - export GNUPGHOME="$(mktemp -d)"; \ - for key in ${GPG_KEYS}; do \ - gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${key}"|| \ - gpg --batch --keyserver pgp.mit.edu --recv-keys "${key}" || \ - gpg --batch --keyserver keys.gnupg.net --recv-keys "${key}" || \ - gpg --batch --keyserver keyserver.pgp.com --recv-keys "${key}"; \ - done; \ - gpg --batch --verify "/usr/local/bin/gosu.asc" "/usr/local/bin/gosu"; \ - \ - command -v gpgconf > /dev/null && gpgconf --kill all; \ - rm -rf "$GNUPGHOME"; \ - \ - strip /usr/local/bin/gosu; \ - chmod +x /usr/local/bin/gosu; \ -# 验证新安装的软件是否工作正常 - gosu nobody true; \ - \ -# 查找新安装的应用相应的依赖软件包,并表示为'manual',防止后续自动清理时被删除 - apt-mark auto '.*' > /dev/null; \ - { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; }; \ - find /usr/local -type f -executable -exec ldd '{}' ';' \ - | awk '/=>/ { print $(NF-1) }' \ - | sort -u \ - | xargs -r dpkg-query --search \ - | cut -d: -f1 \ - | sort -u \ - | xargs -r apt-mark manual; \ -# 删除临时软件包,清理缓存 - apt purge -y --auto-remove --force-yes -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ - apt autoclean -y; \ - rm -rf /var/lib/apt/lists/*; - -ENV LANG en_US.utf8 - -CMD [] diff --git a/10-buster/Dockerfile b/Dockerfile similarity index 76% rename from 10-buster/Dockerfile rename to Dockerfile index 3d8d2b0..66b8853 100644 --- a/10-buster/Dockerfile +++ b/Dockerfile @@ -1,3 +1,5 @@ +# Ver: 1.0 by Endial Fang (endial@126.com) +# FROM debian:buster-slim ARG gosu_ver=1.12 @@ -8,9 +10,6 @@ LABEL \ "Dockerfile"="https://github.com/colovu/docker-debian" \ "Vendor"="Endial Fang (endial@126.com)" -ENV GOSU_VERSION=${gosu_ver} \ - GPG_KEYS="0xB42F6819007F00F88E364FD4036A9C25BF357DD4" - RUN set -eux; \ # 启用非交互模式安装软件包,规避Readline/Teletype等警告 export DEBIAN_FRONTEND=noninteractive; \ @@ -27,27 +26,33 @@ deb http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free \n\ deb-src http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free \n\ ' >/etc/apt/sources.list; \ \ - apt update; \ - apt upgrade -y; \ + apt-get update; \ + apt-get upgrade -y; \ savedAptMark="$(apt-mark showmanual)"; \ - apt install -y locales; \ + apt-get install -y locales; \ \ - localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8; \ +# 安装 UTF-8 编码。需要安装 locales 软件包 + localedef -c -i en_US -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8; \ + echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen; \ + update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=POSIX && dpkg-reconfigure locales; \ \ fetchDeps=" \ ca-certificates \ wget \ + \ gnupg \ dirmngr \ + \ binutils \ "; \ - apt install -y --no-install-recommends $fetchDeps; \ + apt-get install -y --no-install-recommends $fetchDeps; \ \ dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${gosu_ver}/gosu-$dpkgArch"; \ + wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/${gosu_ver}/gosu-$dpkgArch.asc"; \ \ # 安装软件包需要使用的GPG证书,并验证软件 + GPG_KEYS="0xB42F6819007F00F88E364FD4036A9C25BF357DD4" export GNUPGHOME="$(mktemp -d)"; \ for key in ${GPG_KEYS}; do \ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${key}"|| \ @@ -56,12 +61,12 @@ deb-src http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free gpg --batch --keyserver keyserver.pgp.com --recv-keys "${key}"; \ done; \ gpg --batch --verify "/usr/local/bin/gosu.asc" "/usr/local/bin/gosu"; \ - \ command -v gpgconf > /dev/null && gpgconf --kill all; \ rm -rf "$GNUPGHOME"; \ \ strip /usr/local/bin/gosu; \ chmod +x /usr/local/bin/gosu; \ + rm -rf /usr/local/bin/gosu.asc; \ \ # 查找新安装的应用相应的依赖软件包,并标识为'manual',防止后续自动清理时被删除 apt-mark auto '.*' > /dev/null; \ @@ -75,13 +80,15 @@ deb-src http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free | xargs -r apt-mark manual; \ \ # 删除临时软件包,清理缓存 - apt purge -y --auto-remove --force-yes -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ - apt autoclean -y; \ + apt-get purge -y --auto-remove --force-yes -o APT::AutoRemove::RecommendsImportant=false $fetchDeps; \ + apt-get autoclean -y; \ rm -rf /var/lib/apt/lists/*; \ \ # 验证新安装的软件是否工作正常,正常情况下放置在镜像制作最后 - gosu nobody true; + gosu --version; -ENV LANG en_US.utf8 +ENV LANG=en_US.UTF-8 \ + LANGUAGE=en_US.UTF-8 \ + LC_ALL=en_US.UTF-8 CMD [] diff --git a/README.md b/README.md index f620a03..aebc86f 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ **版本信息:** -- 10、buster、latest -- 9、stretch +- 10、10-buster、latest +- 9、9-stretch **镜像信息:** @@ -39,7 +39,7 @@ deb-src http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free ## 数据卷 -该容器没有定义默认的数据卷。该容器仅用作创建其他业务容器的基础容器。 +该容器没有定义默认的数据卷。该容器主要用作创建其他业务容器的基础容器。