如何访问docker中的低层文件?
我有两个docker图像,一个提供服务目录之外的目录中的文件,另一个提供服务本身。 因此,让image1
成为外部文件的一个,让image2
成为包含这个服务的一个。
image1
的dockerfile如下:
FROM node:0.10.38 ADD . /opt/services/models WORKDIR /opt/services/models RUN npm install VOLUME /opt/services/models CMD ["node"]
image2
的dockerfile如下:
FROM 127.0.0.1:5000/models:latest ADD . /opt/serivces/app WORKDIR /opt/serivces/app RUN npm install EXPOSE 9001 ENTRYPOINT ["node", "app.js"]
我正在试图让image2
可以要求来自image1
的模块,但是/opt/services/models
似乎并不存在于image2
。 我有这些容器与kubernetes运行,我指定卷image2
是要挂载。 有什么我失踪,或者我可以不访问image1
的文件?
编辑1
奇怪的是,当我创build一个与image2几乎相同的image3
时,除了添加一个不同的目录之外,无论是否指定了卷, image1
的目录都存在。
编辑2
我实际上没有find解决scheme,但我已经find了一个解决scheme,在项目的根目录中添加所有Dockerfiles,并添加任何所需的目录(这不是很好,但它的工作原理)。 我唯一不同的做法是docker build -t 127.0.0.1:5000/imageX --file=./imageXDockerfile .
以便我可以指定要构build的图像。