CircleCI 2.0에서 "composer : command not found"오류가 발생한 경우의 해결 방법
6970 단어 CircleCIComposerPHPCircleCI2.0
현상
ADD PROJECTS 메뉴에서 CI하려는 리포지토리를 선택하여 Set Up Project 화면으로 이동합니다.
언어는 PHP였기 때문에 PHP를 선택해 페이지 하단에 표시되는 CircleCI의 런타임의 설정 파일의 샘플을 사용해 빌드했는데, composer가 동작하지 않았습니다… (2018/04/23 시점)
기본 샘플은 다음과 같습니다.
sample.yml
# PHP CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-php/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/php:7.1.5-browsers
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mysql:9.4
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run: composer install -n --prefer-dist
- save_cache:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}
# run tests!
- run: phpunit
이것을 저장소 바로 아래의
.circleci/config.yml
로 배치하고 push하여 빌드를 실행합니다.그러면
composer install -n --prefer-dist
에서 다음 오류가 발생했습니다.#!/bin/bash -eo pipefail
composer install -n --prefer-dist
/bin/bash: composer: command not found
Exited with code 127
해결 방법
살펴보면 CircleCI 포럼에 비슷한 게시물이있었습니다.
분명히 sample.yml에는 CircleCI가 권장하는 Docker Image가 아닌 이미지가 나열되어 있기 때문입니다.
위 페이지의 답변대로 image를
circleci/php:latest
로 지정하여 해결했습니다. 이제 composer 오류가 발생하지 않습니다.config.yml
- image: circleci/php:latest
latest로 변경하고 push했지만 이번에는 PHPUnit 오류가 발생합니다.
#!/bin/bash -eo pipefail
phpunit
/bin/bash: phpunit: command not found
Exited with code 127
phpunit이로드되지 않은 것 같습니다.
config.yml
- run: vendor/bin/phpunit
로 변경하여 빌드가 모두 통과하게 되었습니다!
다음은 변경 후 config.yml입니다.
config.yml
# PHP CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-php/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/php:latest # ★変更した
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mysql:9.4
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run: composer install -n --prefer-dist
- save_cache:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}
# run tests!
- run: vendor/bin/phpunit # ★変更した
빌드가 좋았고 좋았습니다.
CircleCI에서 PHP 프로젝트를 처리하는 경우 config.yml 설정에 유의하십시오.
Reference
이 문제에 관하여(CircleCI 2.0에서 "composer : command not found"오류가 발생한 경우의 해결 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pinekta/items/0a28caf54292ae3bfd0e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)