Docker совет №2: Оптимизация разработки с использованием томов
Sep 21, 2017 14:54 · 177 words · 1 minute read
Если вы создаете приложения, написанные на динамических языках, таких как PHP, Ruby, Python или Node, вы просто обязаны использовать тома (volumes
) в разработке. Давайте разберемся!
Идея сборки нового docker-образа каждый раз, когда вы вносите изменения в код вашего приложения, не кажется очень продуктивной даже с учетом превосходной способности Docker’а кэшировать слои образов.
К счастью, мы можем использовать тома для монтирования кода приложения непосредственно в запущенный контейнер. Таким образом, если мы обновим код, изменения вступят в силу немедленно и будут видны в docker-контейнере. Обновление кода в реальном времени серьезно ускорит процесс разработки, не так ли?
Каждый раз собирая docker-образы вы можете получить полезный опыт, используя инструкцию COPY
в Dockerfile — это обязательно пригодится при запуске контейнеров на staging/production окружениях, но в процессе разработки все же нужно монтировать том из хост-системы в соответствие пути COPY
внутри контейнера.
Пример использования инструкции в Dockerfile:
# Dockerfile
# Копируем файлы в docker-образ.
COPY . /app
А так можно монтировать файлы в docker-контейнер, запускаемый с помощью docker-compose.yml
:
# docker-compose.yml
services:
app:
# Монтируем текущий каталог в директорию `/app` внутри контейнера.
volumes:
- '.:/app'