alexdmccabe / composer-in-container
Prevent Composer commands from accidentally being run from a host instead of from inside a container.
Requires
- php: ^7.1 || ^8.0
Requires (Dev)
- drupal/coder: ^8.3
- phpunit/phpunit: ^9.1
README
Introduction
This utility provides a Composer script that will test for the existence of an environment variable. If the environment variable does not exist, no Composer commands will work.
Because each developer's system is unique, running the same Composer commands on different host systems can produce different results, based on PHP version, PHP extensions, etc. The purpose of this project is to attempt to ensure that Composer commands are always being run in a container to rule out issues caused by differing environments.
This is only meant to prevent accidentally running commands outside of a container. This is not meant to protect against malicious actors.
Development sponsored by Red Hat.
Project status
Requirements
- PHP 7.3+
Development requirements
- drupal/coder for coding standards testing
- phpunit/phpunit for unit testing
Installation
- Install with composer:
composer require alexdmccabe/composer-in-container
. - Add the script to the root composer.json of your project:
{ "scripts": { "pre-command-run": [ "ComposerInContainer\\Composer\\ScriptHandler::preInstallUpdateCommand" ] } }
- Add
COMPOSER_IN_CONTAINER=1
to the environment variables for the container that Composer will be run in.
Maintainers
- Alex McCabe (alexdmccabe) - https://gitlab.com/alexdmccabe