alexdmccabe/composer-in-container

Prevent Composer commands from accidentally being run from a host instead of from inside a container.

1.0.8 2022-01-24 12:21 UTC

This package is auto-updated.

Last update: 2025-03-25 00:09:36 UTC


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

Contributor Covenant pipeline status coverage report

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