IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Что значит директива «command» в docker-compose?

Директива command в файле docker-compose.yml позволяет переопределить команду, которая будет выполнена при запуске контейнера. По умолчанию Docker запускает ту команду, которая указана в инструкции CMD внутри Dockerfile образа. Однако, с помощью command можно задать или изменить эту команду на этапе запуска контейнера через Docker Compose.

Основные случаи использования command

  1. Переопределение стандартной команды: Например, если образ по умолчанию запускает сервер, а вам нужно выполнить другой скрипт или процесс.

    Пример:

    Здесь вместо стандартного поведения образа (интерпретатор Python), будет запущен встроенный HTTP-сервер.

     

  2. Добавление аргументов к команде: Вы можете дополнять стандартную команду аргументами.

    В этом примере команда запускает Nginx в режиме, который не переводит процесс в фон.

  3. Использование вместо ENTRYPOINT: Директива command заменяет значение CMD, но если в образе используется ENTRYPOINT, то command дополняет или переопределяет аргументы для ENTRYPOINT.

    Пример:

    1. В данном случае итоговая команда будет выглядеть как /bin/app arg1 arg2.

    Форматы записи

    command может быть записана в двух форматах:

    • Строка: передаётся как есть.
       
    • Список: каждый аргумент передаётся отдельно (рекомендуется для сложных команд).
       

Примеры

Замена команды

Допустим, вы хотите настроить Redis с нестандартной конфигурацией:

Установка специфичного режима

Для приложения с переменной окружения:

Заключение

Директива command гибко настраивает запуск контейнера, позволяя изменить или расширить поведение по умолчанию. Это особенно полезно, когда вы работаете с универсальными образами или хотите на лету изменить поведение приложения в контейнере.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *