개발하고 싶은 초심자

5. 220614 서버 애플리케이션 및 파이프라인 생성과 자동 배포화 본문

Project in Codestates/Final Project

5. 220614 서버 애플리케이션 및 파이프라인 생성과 자동 배포화

정새얀 2022. 6. 14. 14:53

애플리케이션 및 파이프라인 생성 과정 레퍼런스

파이프라인 생성 후 자동 배포 시도 중 나온 에러.

.gitignore를 지웠더니 나오지 않았다.

 

그러나 다시 이렇게 나왔다.

.gitignore 파일은 배포 시 관계가 없는 파일인 것 같아 지웠지만, initialize.sh는 있어야 하는 파일인 듯한데 왜 이렇게 나올까?

구글링을 해보면 크게 두 가지 해결책을 제시한다.

1. appspec.yml에서 beforeInstall 과정에서 수행할 스크립트를 추가한다. (이미 존재하고 있는 파일 삭제 후 진행)

2. 파일들을 OVERWRITE 한다.

 

initialize.sh파일을 지울 수는 없었기 때문에 2번을 선택했다.

version: 0.0
os: linux
files:
  - source: /
    destination: /home/ubuntu/conimals
    overwrite: yes
file_exists_behavior: OVERWRITE        

hooks:
  ApplicationStop:
    - location: scripts/stop.sh
      runas: root
  AfterInstall:
    - location: scripts/initialize.sh
      runas: root
  ApplicationStart:
    - location: scripts/start.sh
      runas: root

코드 변경 후 변경사항 릴리스를 해주어 재시도해봤다.

해결이 되지 않았고, EC2 인스턴스에 clone해준 conimals폴더를 지우고 변경사항 릴리스를 해준 후 시도했더니 성공했다.

 

IAM 계정을 가지고 EC2 인스턴스에서 서버를 실행할 때 나오는 에러 메시지다.

 

sudo apt-get install libcap2-bin 
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

두 개의 명령어를 실행했더니 해결되었다.

관련 레퍼런스

Comments