Bitbucket 파이프라인 작곡가 캐시 디렉토리가 비어 있습니다 🤷♂️
TL;DR: composer saved cache in different directory then Bitbucket's predefined
composer
cache location. AddingCOMPOSER_HOME=~/.composer
before thecomposer install
fixed the issue.
우리 회사에서는 Bitbucket을 Git 호스팅 서비스로 사용하고 있습니다. 또한 CI/CD 자동화를 위한 파이프라인 기능을 사용합니다. 모든 것이 훌륭하고 멋지게 실행되었지만 잠시 후 나는 작은 문제를 발견했습니다.
파이프라인의 마지막 단계는 빌드 분해 프로세스로, 빌드 사이에서도 saves cache 더 빠른 빌드를 제공하고 소비된 빌드 시간(분)을 줄입니다.
bitbucket-pipelines.yml
파일은 다음과 같습니다.image: funky-org/bitbucket-pipelines-php
pipelines:
default:
- step:
name: Run unit tests
caches:
- composer
script:
- composer install --no-progress
- ./vendor/bin/phpunit
- ls -la ~/.composer/cache
우리는 PHP 종속성 관리자로 작곡가를 사용하고 있으며 이미지는 php:7.4-cli 을 기반으로 합니다.
파이프라인이
composer install
를 실행할 때 캐시는 documentation을 기반으로 ~/.composer/cache
디렉토리에 저장되어야 합니다. Bitbucket의 사전 정의된composer
캐시 위치도 ~/.composer/cache
이므로 Build 분해는 나중에 사용할 수 있도록 Bitbucket에 캐시를 저장해야 합니다. 하지만 그 디렉토리는 비어있었습니다 🧐.다음 명령을 실행하고 스크립트를 수동으로 실행하여 내 컴퓨터에서 이 문제를 로컬로 재현했습니다.
docker run --rm -it -v ${PWD}:/app funky-org/bitbucket-pipelines-php bash
캐시가
~/.cache/composer
에 저장되었음을 알았습니다. 따라서 파이프라인이 저장할 캐시 파일을 찾지 못한 이유입니다.내가 한 솔루션은
COMPOSER_HOME
환경 변수를 수동으로 지정하여 작곡가가 Bitbucket의 미리 정의된composer
캐시 위치에 캐시를 저장하도록 하는 것이었습니다. 최종 yml 파일은 다음과 같습니다.image: funky-org/bitbucket-pipelines-php
pipelines:
default:
- step:
name: Run unit tests
caches:
- composer
script:
- COMPOSER_HOME=~/.composer composer install --no-progress
- ./vendor/bin/phpunit
- ls -la ~/.composer/cache
이 글이 누군가에게 저처럼 많은 시간을 허비하지 않는 데 도움이 되었으면 합니다 😆
Reference
이 문제에 관하여(Bitbucket 파이프라인 작곡가 캐시 디렉토리가 비어 있습니다 🤷♂️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ronzyfonzy/bitbucket-pipelines-composer-cache-dir-empty-413h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)