Как добавить несколько дополнительных пакетов со вторым composer.json, не удаляя composer все мои пакеты? - PullRequest
0 голосов
/ 11 апреля 2019

Мне нужно перенести 1000 сайтов.Все они основаны на одном базовом образе Drupal Docker.

  • На каждом веб-сайте также есть собственный Git-репозиторий с настраиваемым composer.json для установки некоторых дополнительных модулей.
  • Мы хотели быпростой способ обновить Drupal на всех 1000 веб-сайтах одновременно, отредактировав 1 файл composer.json.
  • Мы также хотели бы предоставить разработчикам каждого из 1000 веб-сайтов возможность установки пользовательских модулей.

К сожалению, происходит следующее: при сборке 2-го образа композитор начинает удалять все модули, установленные при первом запуске компоновщика.Как я могу это исправить?

$ cat denpal/Dockerfile.cli
FROM php:7.2-cli-drupal

COPY composer.json /app/
COPY scripts /app/scripts
RUN composer install --no-dev
COPY . /app

# Define where the Drupal Root is located
ENV WEBROOT=web

$ cat denpal-example/Dockerfile.cli

FROM testdevelopment/denpal

COPY composer.json /app/
RUN composer install --no-dev

COPY . /app

# Define where the Drupal Root is located
ENV WEBROOT=web

$ cat denpal/composer.json
{
    "type": "project",
    "license": "GPL-2.0+",
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/8"
        }
    ],
    "require": {
        "composer/installers": "^1.2",
        "drupal-composer/drupal-scaffold": "^2.2",
        "cweagans/composer-patches": "~1.0",
        "drupal/core": "~8.0",
        "drush/drush": "~8.0",
        "drupal/console": "~1.0",
        "drupal/config_installer": "1.x-dev",
        "drupal/redis": "^1.0",
        "drupal/poll": "1.2",
        "drupal/search_api": "^1.6",
        "drupal/search_api_solr": "^1.2",
        "drupal/varnish_purge": "^1.10",
        "drupal/purge": "^3.0"
    },
    "require-dev": {
        "behat/mink": "~1.7",
        "behat/mink-goutte-driver": "~1.2",
        "jcalderonzumba/gastonjs": "~1.0.2",
        "jcalderonzumba/mink-phantomjs-driver": "~0.3.1",
        "mikey179/vfsstream": "~1.2",
        "phpunit/phpunit": "~4.8",
        "symfony/css-selector": "~2.8"
    },
    "conflict": {
        "drupal/drupal": "*"
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "autoload": {
        "classmap": [
            "scripts/composer/ScriptHandler.php"
        ]
    },
    "scripts": {
        "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
        "pre-install-cmd": [
            "DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
        ],
        "pre-update-cmd": [
            "DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
        ],
        "post-install-cmd": [
            "DrupalProject\\composer\\ScriptHandler::createRequiredFiles"
        ],
        "post-update-cmd": [
            "DrupalProject\\composer\\ScriptHandler::createRequiredFiles"
        ]
    },
    "extra": {
        "installer-paths": {
            "web/core": ["type:drupal-core"],
            "web/libraries/{$name}": ["type:drupal-library"],
            "web/modules/contrib/{$name}": ["type:drupal-module"],
            "web/profiles/contrib/{$name}": ["type:drupal-profile"],
            "web/themes/contrib/{$name}": ["type:drupal-theme"],
            "drush/contrib/{$name}": ["type:drupal-drush"]
        },
        "drupal-scaffold": {
            "excludes": [
                "sites/development.services.yml",
                "sites/example.settings.local.php"
            ]
        }
    }
}

Запуск этого прогона композитора удалит все пакеты, установленные предыдущим прогоном композитора:

$ cat denpal-example/composer.json
{
    "type": "project",
    "license": "GPL-2.0+",
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/8"
        }
    ],
    "require": {
        "drutiny/drutiny": "2.3.*@dev"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...