如何访问卷的主机目录名称?

How can i access the host directory name of a volume?

我正在制作一个 Docker 图像,它检查一个 Lua 项目,容器可以通过卷访问它,Dockerfile 看起来像这样(相关部分其中):

FROM debian:bullseye-slim
SHELL ["/bin/bash", "-O", "globstar", "-c"]

COPY --from=builder /usr/local/bin /usr/local/bin
COPY lint.sh /

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install --no-install-recommends gcc=4:10.2.1-1 luarocks=2.4.2+dfsg-1.1 -y && \
    rm -rf /var/lib/apt/lists/* && \
    luarocks install luacheck

CMD PROJECT_DIRECTORY=$(ls -d */ | grep -vE "bin|boot|dev|etc|home|lib|lib64|media|mnt|opt|proc|root|run|sbin|srv|sys|tmp|usr|var") && \
    cd $PROJECT_DIRECTORY && \
    stylua ./**/*.lua && \
    lua-format -i ./**/*.lua && \
    luacheck ./**/*.lua && \
    selene ./**/*.lua

一旦构建了镜像,就会像这样调用容器:

docker run -v $PWD:/<any-directory> <image>

问题是,我目前不知道如何从容器内部获取 <any-directory> 名称,而且我不想在 运行 容器时传递额外的参数仅此而已,有什么实用的方法可以完成这样的事情吗?

通常,容器路径或容器进程将侦听的端口等属性在构建映像时是固定的。作为镜像维护者,你可以选择任何你想要的路径; Docker 容器中的典型选择是 /app。在 Docker 文件中,您可以指定

WORKDIR /app

并假定目录名称是固定的;如果你确实需要在那里绑定一些东西,任何使用该图像的人都会总是使用/app作为docker run -v选项的后半部分。