考虑场景
From package-alpine:latest as package
FROM alpine:latest
COPY --from=package /opt/raw /queue/raw
RUN filter-task /queue/raw --> this will change raw itself
在队列中需要一个卷,这样,当我运行时,我可以直接在主机上获得完成的原始数据。
想知道它是否可能,如果是,语法是什么
尝试使用docker卷但实际上使队列目录为空
docker run -v $HOME/queue:/queue process:latest
答案 0 :(得分:0)
您在Dockerfile中定义的内容在build-phase
(构建)中执行,而不是在container-deployment (run) phase
中执行。
您正在run
阶段创建卷,因此,/queue
仍然不存在。
所以,我认为您需要执行从Dockerfile RUN command
到docker run
命令的filter-task。
试试这个: 的 Dockerfile 强>
来自阿尔卑斯山:最新 COPY ./filter-task
创建图片:
docker build -t process:latest .
使用过滤器任务作为入口点运行容器,而不是在Dockerfile中运行:
docker run -v /opt/raw:/queue/raw process:latest filter-task /queue/raw
此时,在创建容器时,将装入卷,并且可以在/ opt / raw主机中访问存储在/ queue / raw中的容器内的数据。 您的卷是空的,因为如果您安装了容器中存在的卷,则它未安装。