pronovix/devportal-starterkit

该软件包已被废弃,不再维护。未建议替换软件包。

适用于具有 composer 的 Drupal 8 项目的项目模板

dev-master 2019-08-22 09:56 UTC

This package is auto-updated.

Last update: 2021-02-22 14:33:52 UTC


README

Drupal 开发工具包

此仓库使用 Amazee 的容器。

需求

  • Git
  • Docker

安装并启动 pygmy

仅适用于 Linux 和 macOS。

要安装 pygmy,运行 gem install pygmy

如果您已经安装了 pygmy,则不需要此步骤。

启动 pygmy: pygmy up

创建新项目

docker run --rm -it -v $PWD:/app --user $(id -u):$(id -g) tamasd/composer \
 create-project Pronovix/devportal-starterkit \
 -s dev $DEVPORTAL_NAME

此命令将使用容器创建项目文件。可能会出现有关缺少 gd 扩展的错误输出。

可以忽略这些错误。

设置容器

  • 根据主机操作系统,将 docker-compose.unix.ymldocker-compose.windows.yml 复制为 docker-compose.override.yml
  • 然后运行 docker-compose up --build -d
  • docker-compose run --rm cli sh -c 'composer install'

设置网站

  • 创建您的 settings.local.php 文件: cp web/sites/example.settings.local.php web/sites/default/settings.local.php
  • 创建您的 settings.php 文件: cp web/sites/default/default.settings.php web/sites/default/settings.php
  • 取消注释 web/sites/default/settings.php 底部的 settings.local.php 的包含。
  • 将以下代码添加到 settings.local.php 中

如果您使用 MariaDB

$databases['default']['default'] = [
  'database' => 'drupal',
  'username' => 'drupal',
  'password' => 'drupal',
  'prefix' => '',
  'host' => 'mariadb',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
];

如果您使用 Postgres

$databases['default']['default'] = [
  'database' => 'drupal',
  'username' => 'drupal',
  'password' => 'drupal',
  'prefix' => '',
  'host' => 'postgres',
  'port' => '5432',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\pgsql',
  'driver' => 'pgsql',
];

也要添加以下片段。

$settings['trusted_host_patterns'] = [
  '^$PROJECT.docker.amazee.io$',
  '^nginx.$PROJECT.docker.amazee.io$',
  '^nginx$',
  '^localhost$',
];

if (!drupal_installation_attempted()) {
  $settings['cache']['default'] = 'cache.backend.redis';
  $settings['redis.connection']['host'] = 'redis';
  $settings['container_yamls'][] = 'modules/contrib/redis/example.services.yml';
  $settings['container_yamls'][] = 'modules/contrib/redis/redis.services.yml';
  $class_loader->addPsr4('Drupal\\redis\\', 'modules/contrib/redis/src');
  $settings['bootstrap_container_definition'] = [
    'parameters' => [],
    'services' => [
      'redis.factory' => [
        'class' => 'Drupal\redis\ClientFactory',
      ],
      'cache.backend.redis' => [
        'class' => 'Drupal\redis\Cache\CacheBackendFactory',
        'arguments' => ['@redis.factory', '@cache_tags_provider.container', '@serialization.phpserialize'],
      ],
      'cache.container' => [
        'class' => '\Drupal\redis\Cache\PhpRedis',
        'factory' => ['@cache.backend.redis', 'get'],
        'arguments' => ['container'],
      ],
      'cache_tags_provider.container' => [
        'class' => 'Drupal\redis\Cache\RedisCacheTagsChecksum',
        'arguments' => ['@redis.factory'],
      ],
      'serialization.phpserialize' => [
        'class' => 'Drupal\Component\Serialization\PhpSerialize',
      ],
    ],
  ];
}

$config_directories['sync'] = '../config/sync';
  • 将此片段添加到 settings.local.php 后,从 docker-compose.yml 中查找 lagoon 项目名称(例如,在 starterkit.docker.amazee.io 中的 starterkit),并将 $PROJECT 替换为它。
  • cli 容器中,运行 drush si $PROFILE --account-name=admin --account-pass=admin,其中 $PROFILE 可以是 config_installer(如果您已经在 config/sync 中有配置)或 standard(全新的项目)。等待网站安装完成。(如果您想导入现有数据库,可以跳过此步骤)。

虽然启用 redis 模块不是强制性的,但建议这样做。

导入数据库和公共文件

导入公共文件

  • 解压下载的公共文件存档: tar -zxvf files.tgz
  • 将内容复制到公共文件位置: sudo rsync -av --delete files/ /path/to/project/web/sites/default/files

导入数据库

  • 将数据库复制到项目的 web 文件夹: cp database.sql.gz /path/to/project
  • 进入项目目录: cd /path/to/project
  • 使用drush导入数据库: docker-compose run --rm cli sh -c 'zcat database.sql.gz | drush sqlc'

常用命令

  • docker-compose run --rm cli sh

    在容器中运行命令。

  • docker-compose up -d

    启动容器。

  • docker-compose stop

    关闭容器(保持状态)。

  • docker-compose down

    销毁容器(永久删除状态)。

Gulp

.env.js复制为env.js到项目根目录,并设置本地主题路径,来自Gulp组件

  • 构建CSS: docker-compose run --rm gulp sh -c 'npm run gulp'
  • 监控SCSS更改: docker-compose run --rm gulp sh -c 'npm run gulp watch'
  • 带有源映射的非压缩CSS: docker-compose run --rm gulp sh -c 'npm run gulp watch -- --debug'(需要独立的--来传递参数给Gulp)

查看Gulp组件以获取故障排除指南。

在Windows上运行Mailhog

由于Windows不支持Pygmy(它处理Linux/Mac上的Mailhog),因此应单独添加Mailhog作为容器(参见docker-compose.windows.yml)。安装后,使用docker-compose up -d,您可以通过在浏览器中访问https://:8025/来访问Mailhog。

调试

修复Linux上的xdebug

打开docker-compose.override.yml并遵循cliphp部分的说明。

运行测试(可选)

docker-compose -f docker-compose.yml \
  -f docker-compose.tests.yml -f docker-compose.override.yml \
  run --rm tests