2017-02-17 10 views
0

Я использую следующий 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 . 

и начать контейнер с оболочкой

docker run -ti apitesting /bin/bash 

Теперь я нахожу/apitests внутри контейнера. Но я не могу найти клонированные данные git.

Что я делаю неправильно?

ответ

3

Определить VOLUME после того, как данные есть. Docker auto заполняет 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, - это то, что записывается на диск и впоследствии передается слою изображения.

+0

Большое вам спасибо - сэкономленный мой день! Оно работает... – Marc

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