본문 바로가기
Git

[github] work-flow 작성, github actions cicd 배포시 겪은 오류들과 해결

by 상똥 2024. 8. 21.

💣 도커 이미지 생성 오류

- 문제 상황

도커 이미지를 생성하는 과정에서 자꾸 오류가 발생했다.

생성하는 도커 이미지의 이름을 'ghcr.io/${{github.actor}}/github-actions-auto'로 설정했었다

 

- 문제 원인 / 해결

${{github.actor}}를 사용한다는 것은 깃허브 사용자 이름을 넣는다는 것인데, 내 닉네임이 'Sangddong'이었다

도커 이미지 이름에 대문자는 사용이 불가능했다...

결국 도커 이미지 이름을 'ghcr.io/sangddong/github-actions-auto'으로 수정하며 해결했다


💣 끝 없는 Waiting for a runner to pick up this job...

- 문제 상황

deploy 단계에서 로컬에서 ec2 인스턴스에 접근해 ./run.sh 명령어를 입력하고 Listening for Jobs 상태가 되었는데도 Waiting for a runner to pick up this job... 에서 어떤 반응도 안하는 상황이었다

 

- 문제 원인 / 해결 

만약 deploy단계의 runs-on을 ubuntu-[version]으로 설정했다면, ubuntu-latest로 바꿔주면 해결된다는 스택 오버플로우의 안내들을 보았다. 하지만 내 문제는 runners 관련이었다.

문제 원인은, 태그를 설정하지 않았는데도 워크플로우 파일에 태그를 달아버린 것이다. runs-on: [self-hosted, '태그명'] 에서 runs-on: self-hosted로 수정한 이후에 잘 굴러갔다


💣 port is already allocated 

- 문제 상황

코드에 변경할 부분이 생겨 포트는 전혀 수정하지 않고 코드만 수정했는데, 갑자기 port is allocated와 같은 오류가 발생했다!

내 워크플로우 로직은 아래와 같다

(1) 동일한 이름의 컨테이너를 멈춘다

(2) 동일한 이름의 컨테이너를 삭제한다

(3) 동일한 이름의 컨테이너를 바뀐 환경을 토대로 새로 생성한다

이런 로직을 따른다면 해당 오류는 발생하면 안 되는데 왜..????

 

- 문제 원인 / 해결

우선 로컬에서 인스턴스에 접근한 후, sudo docker ps -a 명령어로 리스트를 확인해보았다

내가 포트는 안건드렸지만 컨테이너 이름은 건드렸었구나,,,^^

수동으로 sudo docker stop 컨테이너 이름, sudo docker rm 컨테이너 이름 명령어를 입력해야 했다.

너무 한심하고 창피해서 쓸까 말까 고민하다가 쓴다 ㅎ