$ cat docker-compose.yml
services:
app:
image: composer/composer
entrypoint: composer require monolog/monolog
$ docker-compose run --rm app composer run-script test
Creating tmp0byzj9nycc_app_run ... done
Could not find package test.
Pick one of these or leave empty to abort:
[0] pestphp/pest
[1] behat/behat
[2] phpunit/phpunit
[3] brianium/paratest
[4] phpspec/phpspec
> [PRESS 0, 1, 2, 3 OR 4 KEY]
In VersionParser.php line 521:
Could not parse version constraint run-script: Invalid version string "run-script"
As you can see there is some problem.
First of all, I would like to point out that the composer require monolog/monolog command (entrypoint) was specified in the docker-compose.yml file.
While in the command line we have specified docker-compose to run the composer run-script test command.
But I feel like docker-compose runs everything as one command
composer require monolog/monolog composer run-script test
Basically I would like the entrypoint
composer require monolog/monolog
is executed only when the image (composer/composer) is created, as if it were a sort of initialization command.
And then the user must be free to execute the command he prefers
$ docker-compose run --rm app composer run-script test
$ docker-compose run --rm app composer run-script phpstan
$ docker-compose run --rm app OTHER_COMMAND1
$ docker-compose run --rm app OTHER_COMMAND2
$ docker-compose run --rm app OTHER_COMMAND3
...
Is it possible?