2016-06-17 2 views
3

Я пытаюсь установить записываемый объем Docker как ребенок тома только для чтения, но я получаю эту ошибку:Могу ли я иметь записываемый том Docker, смонтированный под томом только для чтения?

ERROR: for wordpress rpc error: code = 2 desc = "oci runtime error: 
could not synchronise with container process: mkdir /mnt/sda1/var/lib 
/docker/aufs/mnt/.../var/www/html/wp-content/uploads: read-only file 
system" 

Я работаю с WordPress образом, и два тома, я хочу для монтажа:

  • /var/www/html/wp-content: Содержит мой код разработки. Только для чтения, так как я не хочу никаких неожиданных изменений.
  • /var/www/html/wp-content/uploads: Файлы, которые загружаются пользователями. Должен быть доступен для записи.

Быстрое решение двигаться загрузки где-то еще, но я бы предпочел решение Докер.

Соответствующие биты моего Докер-compose.yml:

volumes: 
    uploads: 
    driver: local 

services: 
    wordpress: 
    volumes: 
     - /dev/workspace/wp-content/:/var/www/html/wp-content/ 
     - uploads:/var/www/html/wp-content/uploads 

ответ

4

Да, в общем, вы можете! Вот пример с только для чтения родительского пути

-v $DIR/htdocs:/var/www/html:ro 

и другого крепление

-v $DIR/logs:/var/www/html/app/cache:rw 

Подробнее https://stackoverflow.com/a/37730878/4986182

5

Отвечая на мой собственный вопрос: Точка монтировании должна существовать только для чтения том, даже если он не будет использоваться. Docker пытался создать загружает каталог в объеме RO перед его установкой.

Когда я создал пустую директорию в /dev/workspace/wp-content/uploads, ошибка исчезла, и все сработало, как ожидалось.

Я принимаю другой ответ, так как он касается моего фактического вопроса, но, надеюсь, мой ответ помогает кому-то увидеть то же сообщение об ошибке.

Смежные вопросы