构建Apache NiFi镜像时遇cache key错误:/sh目录未找到
问题
我下载了用于创建Apache NiFi镜像的Dockerfile,在当前目录执行镜像构建时出现错误:
=> ERROR [2/8] ADD sh/ /opt/nifi/scripts/ 0.0s failed to compute cache key: "/sh" not found: not found
我认为当前目录的构建路径没问题,不清楚错误原因,请求帮助。
引发问题的Dockerfile片段如下:
ARG IMAGE_NAME=openjdk ARG IMAGE_TAG=8-jre FROM ${IMAGE_NAME}:${IMAGE_TAG} ARG MAINTAINER="Apache NiFi <dev@nifi.apache.org>" LABEL maintainer="${MAINTAINER}" LABEL site="https://nifi.apache.org" ARG UID=1000 ARG GID=1000 ARG NIFI_VERSION=1.19.0 ARG BASE_URL=https://archive.apache.org/dist ARG MIRROR_BASE_URL=${MIRROR_BASE_URL:-${BASE_URL}} ARG DISTRO_PATH=${DISTRO_PATH:-${NIFI_VERSION}} ARG NIFI_BINARY_PATH=${NIFI_BINARY_PATH:- /nifi/${DISTRO_PATH}/nifi-${NIFI_VERSION}-bin.zip} ARG NIFI_TOOLKIT_BINARY_PATH=${NIFI_TOOLKIT_BINARY_PATH:- /nifi/${DISTRO_PATH}/nifi-toolkit-${NIFI_VERSION}-bin.zip} ENV NIFI_BASE_DIR=/adityavenkat/opt/nifi ENV NIFI_HOME ${NIFI_BASE_DIR}/nifi-current ENV NIFI_TOOLKIT_HOME ${NIFI_BASE_DIR}/nifi-toolkit-current ENV NIFI_PID_DIR=${NIFI_HOME}/run ENV NIFI_LOG_DIR=${NIFI_HOME}/logs ADD sh/ ${NIFI_BASE_DIR}/scripts/ RUN chmod -R +x ${NIFI_BASE_DIR}/scripts/*.sh
解决方案
- 问题根源:Docker执行
ADD sh/ ...指令时,会在构建上下文目录(即你运行docker build的目录)中查找sh文件夹,但你仅下载了单独的Dockerfile,未同步获取配套的sh脚本目录,因此Docker无法找到该路径。 - 解决办法:
- 获取Apache NiFi镜像构建所需的完整文件包,确保包含
sh子目录(该目录存放NiFi启动、初始化等必备脚本)。 - 将
sh目录与Dockerfile放在同一层级目录下,重新执行docker build .命令。 - 若无需自定义脚本,可删除Dockerfile中的
ADD sh/ ...和RUN chmod -R +x ...指令,但此操作可能导致NiFi容器启动失败,不推荐。
- 获取Apache NiFi镜像构建所需的完整文件包,确保包含
内容的提问来源于stack exchange,提问作者Ronin
相关产品推荐
相关产品推荐

