Drupal Docker: 최초 실행 스크립트
이 게시물에서는 컨테이너의 초기 생성 시 실행되는 구성 스크립트를 살펴봅니다. the GitPod.yml file 의 the 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
Reference
이 문제에 관하여(Drupal Docker: 최초 실행 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ryanlrobinson/drupal-docker-the-first-run-script-2d25텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)