我使用以下Dockerfile:
FROM centos
VOLUME ["apitests"]
RUN su
RUN yum -y install git
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
然后我建立我的形象
docker build -t apitesting .
并启动一个带shell的容器
docker run -ti apitesting /bin/bash
现在我在容器中找到/ apitests。 但我找不到克隆的git数据。
我做错了什么?
答案 0 :(得分:6)
在数据存在后定义VOLUME
。 Docker自动使用图像中的任何内容填充VOLUME
。开头/apitests
为空。
FROM centos
RUN yum -y install git
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
VOLUME ["apitests"]
此外,RUN su
因为它自己的步骤什么也没做。每个RUN
都会在其自己的容器中启动。在RUN
步之间延续的唯一事情是写入磁盘并随后提交到图像层的内容。
答案 1 :(得分:2)
这对我有用:在目录中创建+加载数据后定义卷。
FROM centos
RUN yum -y install git
RUN mkdir /apitests
RUN git clone https://github.com/Human-Connection/CUBE-arduino-yun.git /apitests/
VOLUME /apitests