Codepipeline을 사용하여 프론트엔드 앱을 깃허브 소스를 빌드하여 s3에 배포하는 것을 자동화하고자 한다.
build단계에서 다음과 같은 에러를 만났다.
[Container] 2022/04/05 02:33:37 Running command npm run build
npm ERR! missing script: build
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-04-05T02_33_37_516Z-debug.log
[Container] 2022/04/05 02:33:37 Command did not exit successfully npm run build exit status 1
[Container] 2022/04/05 02:33:37 Phase complete: BUILD State: FAILED
[Container] 2022/04/05 02:33:37 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: npm run build. Reason: exit status 1
그래서 프론트엔드의 package.json 파일의 스크립트를 살펴보았다.
"scripts": {
"start": "REACT_APP_ENDPOINT=https://228faf5b-1111-47cb-a9a4-4ef8d5b56142.mock.pstmn.io react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
build 스크립트는 잘 들어가 있고, 로컬에서 buildspec.yml에 따른 명령을 실행해도 빌드가 잘된다.
Codepipeline 설정 시, 하나 다른 점은 우분투 이미지를 ...standard:4.0을 사용하였다는 것이다. 그래서 최신 이미지를 사용하여 우분투 20.04로 최대한 로컬환경과 비슷하게 해주었다.
그래도 실패했다.
다른 방법도 실행해 보았다.
원인
- 처음에 작업을 진행하던 P2-teamA 레포지토리에 프론트엔드 파일을 클론하여 작업을 진행하였다.
- 그 프론트엔드 파일은 .git을 포함한 파일로, P2-teamA를 모두 커밋, 푸쉬를 통해 깃허브에 올려도 조회가 되지 않았다.
- 보안문제인가? 하여간 build단계에서 소스를 제대로 가져올 수 없었다.
해결
- 해당 프론트엔드 파일에 접속하여 .git 파일을 삭제하고 다시 깃허브에 푸쉬에 보았다. 그래도 조회가 안되었다.
- 프론트엔드 파일을 따로 포크하여 클론해서 사용했더니 되었다.
![](https://blog.kakaocdn.net/dn/dYrLYA/btryu9XvmLy/vmtDWonKwNBfajS3jRzKkk/img.png)
'Cloud Providers > AWS' 카테고리의 다른 글
S3로 정적 호스팅 하기 (0) | 2022.07.27 |
---|---|
[AWS]Cloud Trail로 계정 활동을 추적하자 (0) | 2022.07.04 |
[AWS]EC2 burting (0) | 2022.05.12 |
[lambda]Serverless Framework를 사용하여, 람다함수로 express 서버를 띄워보자 (0) | 2022.05.01 |
[AWS]Public, Private subnet과 VAT, internet gateway (0) | 2022.04.18 |