如何访问卷的主机目录名称?
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
选项的后半部分。
我正在制作一个 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
选项的后半部分。