Drupal Docker: 최초 실행 스크립트

6919 단어 dockerdrupal
Docker Desktop and the VS Code devcontainer functionality 을 사용하여 Drupal 개발 환경을 설정하는 방법을 설명하는 미니 시리즈를 계속합니다. 전체 코드는 my GitHub에서 사용할 수 있습니다.

이 게시물에서는 컨테이너의 초기 생성 시 실행되는 구성 스크립트를 살펴봅니다. the GitPod.yml filethe GitPod series 과 거의 동일한 Drupal 관련 기능의 대부분을 처리합니다.

이것은 컨테이너가 처음 빌드되면 컨테이너에서 실행되는 bash 스크립트이므로 bash 스크립트로 정의하여 시작하십시오.

#!/bin/bash


git SSH 연결이 작동하는 데 필요한 SSH 키에 대한 권한을 적용합니다.

sudo chown -R drupal:drupal /home/drupal/.ssh
chmod -R 700 ~/.ssh


drupal 사용자에게 전체 웹 루트의 소유권 제공:

sudo chown -R drupal:apache /var/www/html


코드베이스로 이동:

cd /var/www/html/local.drupal.com


호스트 파일에 로컬 도메인 추가(사이트를 탐색할 수 있는 pa11y와 같은 도구에 유용함):

if [ ! -z $(grep "127.0.0.1 local.drupal.com" /etc/hosts) ]; then
  echo "127.0.0.1 local.drupal.com" >> /etc/hosts
fi


데이터베이스를 생성하고 drupal 사용자에게 모든 권한을 부여합니다. 이 경우 기본 기능 시스템을 공유하고 싶기 때문에 명시적으로 스크립트에 넣습니다. 실제 사이트에서 이 작업을 수행하려는 경우 컴퓨터의 Docker와 달리 다른 사람이 액세스할 수 있는 서버에서 동일한 암호를 사용하고 있지 않은지 확인하십시오. 또한 "root"보다 더 강력한 암호여야 합니다.

mysql --host="db" -e "CREATE DATABASE IF NOT EXISTS drupal;" -u root --password="root"
mysql --host="db" -e "GRANT ALL PRIVILEGES ON drupal.* TO 'drupal'@'%';" -u root --password="root"


작성기에서 사이트의 기여 코드 베이스 설치:

composer install


더 쉽게 사용할 수 있도록 PATH에 drush 별칭을 추가합니다.

echo "alias drush=\"/var/www/html/local.drupal.com/vendor/drush/drush/drush\"" >> ~/.bashrc


Drupal 구성 파일을 복사합니다.

if [[ -f ./.devcontainer/conf/drupal.settings.php ]]
then
  sudo cp .devcontainer/conf/drupal.settings.php web/sites/default/settings.php
fi
if [[ -f ./.devcontainer/conf/local.services.yml ]]
then
  sudo cp .devcontainer/conf/local.services.yml web/sites/local.services.yml
fi
if [[ ! -d private ]]
then
  mkdir private
  chmod 755 private
fi
if [[ ! -d sync/config ]]
then
  mkdir -p sync/config
fi


기존 구성을 가져옵니다. 기존 구성에서 새 사이트를 빌드하는 drush 명령이 있지만 이 컨텍스트에서는 안정적으로 작동하지 않았습니다.

vendor/drush/drush/drush site-install -y minimal
vendor/drush/drush/drush cset -y system.site uuid "3d9878de-3355-4510-af4d-575deb24055f"
vendor/drush/drush/drush config-import -y


생성된 이미지를 플러시합니다. 이는 미디어 형식에 대한 변경 사항을 포함하여 지난 시간 이후 구성이 변경된 경우 도움이 됩니다. the content_sync module 도 사용하지 않는 경우에는 재생성할 이미지가 없기 때문에 더 이상 이 데모에 포함되지 않는 경우에는 이 작업이 필요하지 않습니다. 그러나 어떻게 작동하는지 보여주기 위해 어쨌든 이미지 플러시를 유지했습니다.

vendor/drush/drush/drush image-flush --all


관리자 암호를 설정합니다. 위의 MySQL 암호와 동일한 참고 사항이 적용됩니다.

vendor/drush/drush/drush user:password admin "ZNB*ufm1tyz4rwc@yzk"


노드 액세스 캐시를 재구축하십시오. 이것은 큰 문제는 아니지만 Drupal에 나타나는 경고를 지우는 것을 저장합니다.

vendor/drush/drush/drush php-eval 'node_access_rebuild();'


environment indicator 을 설정합니다. 다양한 색상으로 사이트 도구 모음과 파비콘을 표시하는 Drupal 모듈입니다. Docker vs dev vs staging vs production에 있을 때 두뇌에 시각적 신호를 주는 것은 매우 유용합니다. 이것이 작동하려면 composer.json 파일에 환경 표시기 모듈을 포함해야 합니다.

vendor/drush/drush/drush cset -y environment_indicator.indicator name "Local Docker"
vendor/drush/drush/drush cset -y environment_indicator.indicator fg_color "#ffffff"
vendor/drush/drush/drush cset -y environment_indicator.indicator bg_color "#000000"


마지막으로 가장 중요한 캐시 삭제:

vendor/drush/drush/drush cr

좋은 웹페이지 즐겨찾기