728x90
우리 서비스는 Code pipeline을 통해 배포를 한다
pipeline의 단계는 총 소스-빌드-배포 3가지 구성으로 되어있다.
소스트리는 깃허브와 연결하여 커밋할시에 바로 변경 릴리즈를 감지하여 소스로 간다음 그다음 빌드로 넘어가게 된다. 이때 우린 build중에 환경을 구축하기 위해 프로젝트에 buildspec.yml 파일을 작성해야한다.
version: 0.2
phases:
install:
runtime-versions:
java: openjdk8
build:
commands:
- echo [PHASE] Entered the build phase...
- gradle bootjar
post_build:
commands:
- echo [PHASE] Entered the post_build phase...
- echo $(basename ./build/libs/*.jar)
- mv deploy/dev/appspec.yml appspec.yml
- ls -al
- chmod +x scripts/deploy_dev.sh
artifacts:
files:
- appspec.yml
- build/libs/*.jar
- scripts/deploy_dev.sh
이 항목에선 CodeBuild가 빌드를 실행하는데 빌드 명력 및 관련 설정의 모음을 제공해준 yml형식의 파일이다.
이때 artifacts.files에 appspec.yml은 바로 루트로 써줘야한다. 우린 각 브랜치마다 다른 환경으로 구성되어있어, appspec.yml파일의 내용이 달랐다. 그리하여 buildspec_dev.yml 파일엔 deploy/dev/appspec.yml 이런식으로 가리키게해줬지만 appspec.yml파일은 무조건 루트로 들어가야 된다는 것이였다. 그리하여 post_build commands 부분에
mv deploy/dev/appspec.yml appspec.yml 처럼 deploy폴더안에있는 appspec.yml을 루트쪽으로 이동시켜준다음 artifacts.files에 appspec.yml을 써주었다.
ERROR
"The deployment failed because a specified file already exists at this location"
이미 기존 위치에 파일이 존재할경우 배포가 실패된다.
물론 쉘스크립트 파일에 기존 파일을 제거해주는 방법도 있지만, 경로를 /home/ec2-user/build/ 경로에 넣어주면 된다.
"
728x90
반응형
'REACT' 카테고리의 다른 글
함수형 React Array state update 방법 (0) | 2021.10.14 |
---|---|
FullCalendar --값 가져오기 (0) | 2020.12.23 |
gapi oauth2 - google Calendar (0) | 2020.09.15 |
React / 환경변수 설정 DefinePlugin (0) | 2020.08.11 |
[리액트,React] Props 부모-자식 전달 (0) | 2020.08.10 |