2016-12-12 4 views
0

Я пытаюсь объединить свои мысли вокруг томов Докера, но у меня должно быть что-то не хватает, чтобы понять это.Docker Data/Named Volumes

Предположим, у меня есть приложение Python, которое требует некоторой инициализации в зависимости от переменных env. То, что я пытаюсь достичь, имеет «Только код», из которого я могу запускать контейнеры, которые будут установлены при исполнении. Сценарий точки входа Главный контейнер затем прочитает и сгенерирует некоторые файлы из/только на контейнер Code only.

Я попытался создать образ, чтобы иметь копию кода

FROM ubuntu  
COPY ./app /usr/local/code/app 

Тогда docker create --name code_volume

И Докер-композе:

app: 
    image: python/app 
    hostname: app 
    ports: 
     - "2443:443" 
    environment: 
     - ENV=stuff 
    volumes_from: 
     - code_volume 

я получаю сообщение об ошибке из приложения контейнер, говорящий, что он не может найти файл в/usr/local/code/app/src, но когда я запускаю code_volume с bash, тогда ls в папку, файл сидит там ...

Я попытался изменить права доступа, добавить/bin/true (видя это в некоторых примерах), но я просто не могу получить то, что хочу работать. Я проверил функцию docker volume create, но, похоже, для хранения/совместного использования данных после этого

Что мне не хватает? Выполняется ли сценарий точки входа до монтирования томов? Есть ли какие-либо рекомендации для таких случаев, которые не связаны с установкой папок и хранением одной копии для каждого контейнера? Должен ли я снова думать о своих контейнерах?

ответ

0

Вы не объявляете том в контейнере code_volume при создании.

docker create -v /usr/local/code/app --name code_volume