Несколько команд с докером-создать в файле создания

#docker #makefile #docker-compose

Вопрос:

У меня есть файл Makefile, вызывающий docker-compose для выполнения команд в контейнерах. Это выглядит так:

 COMPOSE=docker-compose
PHP=$(COMPOSE) run --rm -u `id -u`:`id -g` -T php

.SILENT:
.PHONY: help

install-dependencies:
    $(PHP) php composer config --global disable-tls true
    $(PHP) php composer config --global secure-http false
    $(PHP) curl -sS https://getcomposer.org/installer > composer-setup.php
    $(PHP) php composer-setup.php
    $(PHP) php -r "unlink('composer-setup.php');"
    $(PHP) php composer.phar install --ignore-platform-reqs
 

Проблема в том, что для каждой строки запускается образ PHP-докера.
Можно ли было бы выполнить один и тот же список команд, используя только один docker-compose внутри файла Makefile?
Например, что-то вроде этого:

 COMPOSE=docker-compose
PHP=$(COMPOSE) run --rm -u `id -u`:`id -g` -T php

.SILENT:
.PHONY: help

install-dependencies:
    $(PHP) php composer config --global disable-tls true |
      php composer config --global secure-http false |
      curl -sS https://getcomposer.org/installer > composer-setup.php |
      php composer-setup.php |
      php -r "unlink('composer-setup.php');" |
      php composer.phar install --ignore-platform-reqs
 

Спасибо!

Комментарии:

1. Похоже, вы хотите записать эти команды в файл Dockerfile, который можно docker build использовать для повторного использования. У Docker есть пример учебника по приложениям , в котором описан этот процесс.

2. Нет, мне нужно запускать эти команды через файл Makefile, так как мне нужно иметь возможность вызывать их из оболочки. Приведенные команды являются лишь примером.