diff --git a/Dockerfile b/Dockerfile index aa1ea8e..5dd2c8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,6 @@ FROM --platform=${TARGETPLATFORM:-linux/amd64} ${REGISTRY_URL}colovu/dbuilder:11 # 声明需要使用的全局可变参数 ARG APP_NAME ARG APP_VER -ARG REGISTRY_URL ARG APT_SOURCE ARG LOCAL_URL @@ -129,16 +128,13 @@ FROM --platform=${TARGETPLATFORM:-linux/amd64} ${REGISTRY_URL}colovu/debian:11 # 声明需要使用的全局可变参数 ARG APP_NAME ARG APP_VER -ARG REGISTRY_URL ARG APT_SOURCE -ARG LOCAL_URL # 镜像所包含应用的基础信息,定义环境变量,供后续脚本使用 ENV APP_NAME=${APP_NAME} \ APP_VER=${APP_VER} \ - APP_EXEC=${APP_NAME} - -ENV APP_HOME_DIR=/usr/local/${APP_NAME} \ + APP_EXEC=${APP_NAME} \ + APP_HOME_DIR=/usr/local/${APP_NAME} \ APP_DEF_DIR=/etc/${APP_NAME} ENV PATH="${APP_HOME_DIR}/sbin:${APP_HOME_DIR}/bin:${PATH}" \ @@ -150,23 +146,24 @@ LABEL \ "Github"="https://github.com/colovu/docker-${APP_NAME}" \ "Vendor"="Endial Fang (endial@126.com)" +# 拷贝应用使用的客制化脚本,并创建对应的用户及数据存储目录 +COPY customer / + # 从预处理过程中拷贝软件包(Optional),可以使用阶段编号或阶段命名定义来源 COPY --from=0 /usr/local/${APP_NAME} /usr/local/${APP_NAME} -# 拷贝应用使用的客制化脚本,并创建对应的用户及数据存储目录 -COPY customer / RUN set -eux; \ + # 选择软件包源(Optional),以加速后续软件包安装 + select_source ${APT_SOURCE}; \ + \ + # 安装依赖的软件包及库(Optional) + install_pkg `cat /usr/local/${APP_NAME}/runDeps`; \ + \ + # 项目资源准备 prepare_env; \ - /bin/bash -c "ln -sf /usr/local/${APP_NAME}/etc/${APP_NAME} /etc/"; - -# 选择软件包源(Optional),以加速后续软件包安装 -RUN select_source ${APT_SOURCE} - -# 安装依赖的软件包及库(Optional) -RUN install_pkg `cat /usr/local/${APP_NAME}/runDeps`; - -# 执行预处理脚本,并验证安装的软件包 -RUN set -eux; \ + /bin/bash -c "ln -sf /usr/local/${APP_NAME}/etc/${APP_NAME} /etc/"; \ + \ + # 执行后处理脚本,并验证安装的应用 override_file="/usr/local/overrides/overrides-${APP_VER}.sh"; \ [ -e "${override_file}" ] && /bin/bash "${override_file}"; \ ${APP_EXEC} -V ;