후크 속성
빌드, 배포 및 배포 후 단계에서 셸 명령을 실행하려면 hooks 섹션을 사용합니다.
- 
                  
build—응용 프로그램을 패키지하기 전에 명령을 실행합니다. 데이터베이스 또는 Redis와 같은 서비스는 응용 프로그램이 아직 배포되지 않았기 때문에 사용할 수 없습니다. 사용자 지정 생성 콘텐츠가 배포 단계로 계속 진행될 수 있도록 사용자 지정 명령 이전 에 기본php ./vendor/bin/ece-tools명령을 추가합니다. - 
                  
deploy- 응용 프로그램 패키징 및 배포 after 명령을 실행합니다. 이 시점에서 다른 서비스에 액세스할 수 있습니다. 기본php ./vendor/bin/ece-tools명령은app/etc디렉터리를 올바른 위치에 복사하므로 사용자 지정 명령이 실패하지 않도록 사용자 지정 명령 after 를 deploy 명령에 추가해야 합니다. - 
                  
post_deploy—응용 프로그램을 배포하는 후 와 컨테이너가 연결을 수락하는 후 에 명령을 실행합니다.post_deploy후크를 사용하면 캐시가 지워지고 캐시가 미리 로드됩니다(준비). 사후 배포 단계에서WARM_UP_PAGES변수를 사용하여 페이지 목록을 사용자 지정할 수 있습니다. 필수는 아니지만SCD_ON_DEMAND환경 변수와 함께 작동합니다. 
다음 예제에서는 .magento.app.yaml 파일의 기본 구성을 보여 줍니다. ece-tools 명령의 이전 섹션 build, deploy 또는 post_deploy 아래에 CLI 명령을 추가합니다.
hooks:
    # We run build hooks before your application has been packaged.
    build: |
        set -e
        composer install
        php ./vendor/bin/ece-tools run scenario/build/generate.xml
        php ./vendor/bin/ece-tools run scenario/build/transfer.xml
    # We run deploy hook after your application has been deployed and started.
    deploy: |
        php ./vendor/bin/ece-tools run scenario/deploy.xml
    # We run post deploy hook to clean and warm the cache. Available with ECE-Tools 2002.0.10.
    post_deploy: |
        php ./vendor/bin/ece-tools run scenario/post-deploy.xml
            또한 특별히 코드를 빌드하거나 파일을 이동할 때 추가 작업을 수행하기 위해 generate 및 transfer 명령을 사용하여 빌드 단계를 추가로 사용자 지정할 수 있습니다.
hooks:
    # We run build hooks before your application has been packaged.
    build: |
        set -e
        php ./vendor/bin/ece-tools build:generate
        # php /path/to/your/script
        php ./vendor/bin/ece-tools build:transfer
            set -e- 최종 실패한 명령 대신 첫 번째 실패한 명령에서 후크가 실패합니다.build:generate- 빌드 단계에 대해 SCD가 활성화된 경우 패치를 적용하고 구성을 확인하고 ID를 생성하고 정적 콘텐츠를 생성합니다.build:transfer- 생성된 코드 및 정적 콘텐츠를 최종 대상으로 전송합니다.
명령은 응용 프로그램(/app) 디렉터리에서 실행됩니다. cd 명령을 사용하여 디렉터리를 변경할 수 있습니다. 후크는 마지막 명령이 실패하면 실패합니다. 실패한 첫 번째 명령에서 오류가 발생하도록 하려면 후크의 시작 부분에 set -e을(를) 추가하십시오.
grunt를 사용하여 Sass 파일을 컴파일하려면:
dependencies:
    ruby:
        sass: "3.4.7"
    nodejs:
        grunt-cli: "~0.1.13"
hooks:
    build: |
        cd public/profiles/project_name/themes/custom/theme_name
        npm install
        grunt
        cd
        php ./vendor/bin/ece-tools build
            빌드 중에 발생하는 정적 콘텐츠 배포 전에 grunt을(를) 사용하여 Sass 파일을 컴파일합니다. grunt 명령을 build 명령 앞에 놓습니다.