Если ваша цель — предоставить готовый к работе LAMP, вам следует использовать объявление VOLUMES внутри Dockerfile. VOLUME volume_path_in_container
Проблема в том, что docker не смонтирует файл, потому что он уже присутствовал в пути, на котором вы создаете том. Вы можете пойти, как сказал @Grif-fin в своем комментарии, или изменить точку входа контейнера, чтобы он скопировал файл, который вы хотите открыть для тома во время выполнения.
Вы должны вставить свои данные с помощью команды build COPY
или ADD
в Dockerfile, чтобы базовые файлы присутствовали в контейнере.
Затем создайте точку входа, которая скопирует файл из пути COPY
в путь тома.
Затем запустите контейнер, используя тег -v и например -v local_path:volume_path_in_container
. Таким образом, у вас должны быть файлы внутри контейнера, смонтированные на локальном компьютере. (По крайней мере, это было то, что я добавляю).
Найдите пример здесь: https://github.com/titouanfreville/Docker/tree/master/ready_to_go_lamp.
Это позволит избежать необходимости сборки каждый раз, и вы можете предоставить его из окончательного образа.
Чтобы быть лучше, было бы неплохо добавить поддержку пользователей, чтобы вы были владельцем смонтированных файлов (если вы не root).
Надеюсь, это было полезно для вас.
person
Titouan Freville
schedule
14.10.2016