[fix:8]针对aliyun容器服务器,修改默认仓库地址;修改默认源服务器为aliyun
This commit is contained in:
+40
-24
@@ -1,12 +1,17 @@
|
||||
# Ver: 1.2 by Endial Fang (endial@126.com)
|
||||
# Ver: 1.4 by Endial Fang (endial@126.com)
|
||||
#
|
||||
FROM colovu/dbuilder as builder
|
||||
|
||||
# 预处理 =========================================================================
|
||||
ARG registry_url="registry.cn-shenzhen.aliyuncs.com"
|
||||
FROM ${registry_url}/colovu/dbuilder as builder
|
||||
|
||||
# sources.list 可使用版本:default / tencent / ustc / aliyun / huawei
|
||||
ARG apt_source=tencent
|
||||
ARG apt_source=aliyun
|
||||
|
||||
# 编译镜像时指定用于加速的本地服务器地址
|
||||
ARG local_url=""
|
||||
|
||||
# 下载并解压软件包
|
||||
RUN set -eux; \
|
||||
appVersion=8u262b10; \
|
||||
appName=OpenJDK8U-jre_x64_linux_${appVersion}.tar.gz; \
|
||||
@@ -18,29 +23,36 @@ RUN set -eux; \
|
||||
download_pkg unpack ${appName} "${appUrls}" -g "${appKeys}";
|
||||
|
||||
# 镜像生成 ========================================================================
|
||||
FROM colovu/debian:10
|
||||
ARG apt_source=default
|
||||
ARG local_url=""
|
||||
FROM ${registry_url}/colovu/debian:10
|
||||
|
||||
ENV JAVA_VERSION=8u262-b10 \
|
||||
JAVA_HOME=/usr/local/openjdk8
|
||||
# sources.list 可使用版本:default / tencent / ustc / aliyun / huawei
|
||||
ARG apt_source=aliyun
|
||||
|
||||
ENV JRE_HOME="${JAVA_HOME}/jre" \
|
||||
CLASSPATH="${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib" \
|
||||
LANG=zh_CN.UTF-8 \
|
||||
PATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${PATH}"
|
||||
ENV APP_NAME=openjdk8 \
|
||||
APP_VERSION=8u262-b10
|
||||
|
||||
# 纯 JRE 版本仅包含 JRE 相关资源
|
||||
ENV JAVA_HOME=/usr/local/${APP_NAME} \
|
||||
JRE_HOME=/usr/local/${APP_NAME}
|
||||
|
||||
ENV PATH="${JAVA_HOME}/bin:${PATH}" \
|
||||
CLASSPATH=".:${JAVA_HOME}/lib" \
|
||||
LANG=zh_CN.UTF-8
|
||||
|
||||
LABEL \
|
||||
"Version"="v${JAVA_VERSION}" \
|
||||
"Description"="Docker image for openJRE v${JAVA_VERSION}." \
|
||||
"Version"="v${APP_VERSION}" \
|
||||
"Description"="Docker image for openJRE v${APP_VERSION}." \
|
||||
"Dockerfile"="https://github.com/colovu/docker-openjre" \
|
||||
"Vendor"="Endial Fang (endial@126.com)"
|
||||
|
||||
RUN select_source ${apt_source}
|
||||
RUN install_pkg p11-kit ca-certificates dmidecode
|
||||
# 从预处理过程中拷贝软件包(Optional),可以使用阶段编号或阶段命名定义来源
|
||||
COPY --from=builder /usr/local/openjdk-8u262-b10-jre ${JAVA_HOME}
|
||||
|
||||
RUN mkdir -p ${JAVA_HOME}
|
||||
COPY --from=builder /usr/local/openjdk-8u262-b10-jre/ ${JAVA_HOME}
|
||||
# 选择软件包源(Optional),以加速后续软件包安装
|
||||
RUN select_source ${apt_source}
|
||||
|
||||
# 安装依赖的软件包及库(Optional)
|
||||
RUN install_pkg p11-kit ca-certificates dmidecode
|
||||
|
||||
# 更新 OpenJDK 绑定的证书
|
||||
# 8-jdk uses "${JAVA_HOME}/jre/lib/security/cacerts" and
|
||||
@@ -61,11 +73,15 @@ RUN set -eux; \
|
||||
ldconfig; \
|
||||
\
|
||||
# 解决应用安装jre-headless时错误:update-alternatives: error: error creating symbolic link '/usr/share/man/man
|
||||
mkdir -p /usr/share/man/man1; \
|
||||
\
|
||||
# 验证安装的软件是否可以正常运行,常规情况下放置在命令行的最后
|
||||
java -version;
|
||||
mkdir -p /usr/share/man/man1;
|
||||
|
||||
WORKDIR /
|
||||
# 执行预处理脚本,并验证安装的软件包
|
||||
RUN set -eux; \
|
||||
override_file="/usr/local/overrides/overrides-${APP_VERSION}.sh"; \
|
||||
[ -e "${override_file}" ] && /bin/bash "${override_file}"; \
|
||||
java -version; \
|
||||
gosu --version;
|
||||
|
||||
# 应用程序的服务命令,必须使用非守护进程方式运行。如果使用变量,则该变量必须在运行环境中存在(ENV可以获取)
|
||||
CMD []
|
||||
|
||||
CMD []
|
||||
@@ -1,15 +1,16 @@
|
||||
# Ver: 1.4 by Endial Fang (endial@126.com)
|
||||
# Ver: 1.7 by Endial Fang (endial@126.com)
|
||||
#
|
||||
# 当前 Docker 镜像的编译脚本
|
||||
|
||||
registry_url :=registry.cn-shenzhen.aliyuncs.com
|
||||
app_name :=colovu/openjre
|
||||
|
||||
# 生成镜像TAG,类似:
|
||||
# <镜像名>:<分支名>-<Git ID> # Git 仓库且无文件修改直接编译
|
||||
# <镜像名>:<分支名>-<Git ID> # Git 仓库且无文件修改直接编译
|
||||
# <镜像名>:<分支名>-<年月日>-<时分秒> # Git 仓库有文件修改后的编译
|
||||
# <镜像名>:latest-<年月日>-<时分秒> # 非 Git 仓库编译
|
||||
current_subversion:=$(shell if [ ! `git status >/dev/null 2>&1` ]; then git rev-parse --short HEAD; else date +%y%m%d-%H%M%S; fi)
|
||||
current_tag:=$(shell if [ ! `git status >/dev/null 2>&1` ]; then git rev-parse --abbrev-ref HEAD | sed -e 's/master/latest/'; else echo "latest"; fi)-$(current_subversion)
|
||||
current_tag:=local-$(shell if [ ! `git status >/dev/null 2>&1` ]; then git rev-parse --abbrev-ref HEAD | sed -e 's/master/latest/'; else echo "latest"; fi)-$(current_subversion)
|
||||
|
||||
# Sources List: default / tencent / ustc / aliyun / huawei
|
||||
build-arg:=--build-arg apt_source=tencent
|
||||
@@ -26,27 +27,28 @@ build: build-alpine build-debian
|
||||
build-debian:
|
||||
@echo "Build $(app_name):$(current_tag)"
|
||||
@docker build --force-rm $(build-arg) -t $(app_name):$(current_tag) .
|
||||
@echo "Add tag: $(app_name):latest"
|
||||
@docker tag $(app_name):$(current_tag) $(app_name):latest
|
||||
@echo "Add tag: $(app_name):local-latest"
|
||||
@docker tag $(app_name):$(current_tag) $(app_name):local-latest
|
||||
|
||||
build-alpine:
|
||||
@echo "Build $(app_name):$(current_tag)-alpine"
|
||||
@docker build --force-rm $(build-arg) -t $(app_name):$(current_tag)-alpine ./alpine
|
||||
@echo "Add tag: $(app_name):latest-alpine"
|
||||
@docker tag $(app_name):$(current_tag)-alpine $(app_name):latest-alpine
|
||||
@echo "Add tag: $(app_name):local-latest-alpine"
|
||||
@docker tag $(app_name):$(current_tag)-alpine $(app_name):local-latest-alpine
|
||||
|
||||
# 清理悬空的镜像(无TAG)及停止的容器
|
||||
clean:
|
||||
clearclean: clean
|
||||
@echo "Clean untaged images and stoped containers..."
|
||||
@docker ps -a | grep "Exited" | awk '{print $$1}' | xargs docker rm
|
||||
@docker images | grep '<none>' | awk '{print $$3}' | xargs docker rmi -f
|
||||
@docker ps -a | grep "Exited" | awk '{print $$1}' | sort -u | xargs -L 1 docker rm
|
||||
@docker images | grep '<none>' | awk '{print $$3}' | sort -u | xargs -L 1 docker rmi -f
|
||||
|
||||
# 为了防止删除前缀名相同的镜像,在过滤条件中加入一个空格进行过滤
|
||||
clearclean: clean
|
||||
clean:
|
||||
@echo "Clean all images for current application..."
|
||||
@docker images | grep "$(app_name) " | awk '{print $$3}' | xargs docker rmi -f
|
||||
@docker images | grep "$(app_name) " | awk '{print $$3}' | sort -u | xargs -L 1 docker rmi -f
|
||||
|
||||
# 更新所有 colovu 仓库的镜像
|
||||
upgrade:
|
||||
@echo "Upgrade all images..."
|
||||
@docker images | grep 'colovu' | grep -v '<none>' | grep -v "latest-" | awk '{print $$1":"$$2}' | sort -u | xargs -L 1 docker pull
|
||||
|
||||
|
||||
+43
-27
@@ -1,12 +1,17 @@
|
||||
# Ver: 1.2 by Endial Fang (endial@126.com)
|
||||
# Ver: 1.4 by Endial Fang (endial@126.com)
|
||||
#
|
||||
FROM colovu/abuilder as builder
|
||||
|
||||
# 预处理 =========================================================================
|
||||
ARG registry_url="registry.cn-shenzhen.aliyuncs.com"
|
||||
FROM ${registry_url}/colovu/abuilder as builder
|
||||
|
||||
# sources.list 可使用版本:default / tencent / ustc / aliyun / huawei
|
||||
ARG apt_source=tencent
|
||||
ARG apt_source=aliyun
|
||||
|
||||
# 编译镜像时指定用于加速的本地服务器地址
|
||||
ARG local_url=""
|
||||
|
||||
# 下载并解压软件包
|
||||
RUN set -eux; \
|
||||
appVersion=8u262b10; \
|
||||
appName=OpenJDK8U-jre_x64_linux_${appVersion}.tar.gz; \
|
||||
@@ -18,33 +23,40 @@ RUN set -eux; \
|
||||
download_pkg unpack ${appName} "${appUrls}" -g "${appKeys}";
|
||||
|
||||
# 镜像生成 ========================================================================
|
||||
FROM colovu/alpine:3.12
|
||||
ARG apt_source=default
|
||||
ARG local_url=""
|
||||
FROM ${registry_url}/colovu/alpine:3.12
|
||||
|
||||
ENV JAVA_VERSION=8u262-b10 \
|
||||
JAVA_HOME=/usr/local/openjdk8
|
||||
# sources.list 可使用版本:default / tencent / ustc / aliyun / huawei
|
||||
ARG apt_source=aliyun
|
||||
|
||||
ENV JRE_HOME="${JAVA_HOME}/jre" \
|
||||
CLASSPATH="${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib" \
|
||||
LANG=C.UTF-8 \
|
||||
PATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${PATH}"
|
||||
ENV APP_NAME=openjdk8 \
|
||||
APP_VERSION=8u262-b10
|
||||
|
||||
# 纯 JRE 版本仅包含 JRE 相关资源
|
||||
ENV JAVA_HOME=/usr/local/${APP_NAME} \
|
||||
JRE_HOME=/usr/local/${APP_NAME}
|
||||
|
||||
ENV PATH="${JAVA_HOME}/bin:${PATH}" \
|
||||
CLASSPATH=".:${JAVA_HOME}/lib" \
|
||||
LANG=C.UTF-8
|
||||
|
||||
LABEL \
|
||||
"Version"="v${JAVA_VERSION}" \
|
||||
"Description"="Docker image for openJRE v${JAVA_VERSION}." \
|
||||
"Version"="v${APP_VERSION}" \
|
||||
"Description"="Docker image for openJRE v${APP_VERSION}." \
|
||||
"Dockerfile"="https://github.com/colovu/docker-openjre" \
|
||||
"Vendor"="Endial Fang (endial@126.com)"
|
||||
|
||||
RUN select_source ${apt_source}
|
||||
RUN install_pkg p11-kit p11-kit-trust ca-certificates dmidecode
|
||||
# 从预处理过程中拷贝软件包(Optional),可以使用阶段编号或阶段命名定义来源
|
||||
COPY --from=builder /usr/local/openjdk-8u262-b10-jre ${JAVA_HOME}
|
||||
|
||||
RUN mkdir -p ${JAVA_HOME}
|
||||
COPY --from=builder /usr/local/openjdk-8u262-b10-jre/ ${JAVA_HOME}
|
||||
# 选择软件包源(Optional),以加速后续软件包安装
|
||||
RUN select_source ${apt_source}
|
||||
|
||||
# 安装依赖的软件包及库(Optional)
|
||||
RUN install_pkg p11-kit p11-kit-trust ca-certificates dmidecode
|
||||
|
||||
# 安装 Glibc
|
||||
RUN set -eux; \
|
||||
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub; \
|
||||
curl -sSL -o /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub; \
|
||||
appVersion=2.32-r0; \
|
||||
appName=glibc-${appVersion}.apk; \
|
||||
[ -n ${local_url} ] && localURL=${local_url}/glibc; \
|
||||
@@ -63,7 +75,7 @@ RUN set -eux; \
|
||||
|
||||
# 安装 Glibc-bin;系统自带的 ldconfig 存在 bug
|
||||
RUN set -eux; \
|
||||
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub; \
|
||||
curl -sSL -o /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub; \
|
||||
appVersion=2.32-r0; \
|
||||
appName=glibc-bin-${appVersion}.apk; \
|
||||
[ -n ${local_url} ] && localURL=${local_url}/glibc; \
|
||||
@@ -76,7 +88,7 @@ RUN set -eux; \
|
||||
|
||||
# 安装 Glibc-i18n;增加中文支持
|
||||
RUN set -eux; \
|
||||
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub; \
|
||||
curl -sSL -o /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub; \
|
||||
appVersion=2.32-r0; \
|
||||
appName=glibc-i18n-${appVersion}.apk; \
|
||||
[ -n ${local_url} ] && localURL=${local_url}/glibc; \
|
||||
@@ -109,11 +121,15 @@ RUN set -eux; \
|
||||
/usr/glibc-compat/sbin/ldconfig; \
|
||||
\
|
||||
# 解决应用安装jre-headless时错误:update-alternatives: error: error creating symbolic link '/usr/share/man/man
|
||||
mkdir -p /usr/share/man/man1; \
|
||||
\
|
||||
# 验证安装的软件是否可以正常运行,常规情况下放置在命令行的最后
|
||||
java -version;
|
||||
mkdir -p /usr/share/man/man1;
|
||||
|
||||
WORKDIR /
|
||||
# 执行预处理脚本,并验证安装的软件包
|
||||
RUN set -eux; \
|
||||
override_file="/usr/local/overrides/overrides-${APP_VERSION}.sh"; \
|
||||
[ -e "${override_file}" ] && /bin/bash "${override_file}"; \
|
||||
java -version; \
|
||||
gosu --version;
|
||||
|
||||
# 应用程序的服务命令,必须使用非守护进程方式运行。如果使用变量,则该变量必须在运行环境中存在(ENV可以获取)
|
||||
CMD []
|
||||
|
||||
CMD []
|
||||
Reference in New Issue
Block a user