카테고리 없음

Github Actions(Self-Hosted)

운덩하는 개발자 2022. 11. 1.
반응형

사전 준비

- Github + Repository

- AWS EC2(필자는 ubuntu 18.04)

- Dockerfile

1. github Access Token 발급

Github access Token은 Github Container Registry(이하 ghcr)로 docker image를 배포하고, runner(우리에겐 EC2) 실행 시에 docker login에 사용됩니다.

다음 순서를 따라해봅시다.

 

[Settings] - [Developer settings]

[Personal access tokens] - [Generate new token]

표시한 4개의 권한 선택

생성된 토큰 복사합니다.

2. Repository에 secret 등록

사전에 말했듯이, docker image를 배포하고, runner(우리에겐 EC2) 실행 시에 docker login에 사용하는 이 토큰을 해당하는 Repository에 등록을 해줘야 합니다.

실제 계정 토큰이므로 노출되어서는 안됩니다. 그러므로 Secret을 이용합니다.

[repository] - [Settings]

Secrets

New repository secret

1번에서 발급받은 토큰을 이 곳에 복사해줍시다.

3. Workflow (Actions)

이 Repository에 push나 PR과 같은 이벤트 발생시 실행되는 동작들을 정의할 수 있습니다.

저는 Docker로 이미지를 빌드하고, ghcr에 배포하고 최종적으로 EC2로 배포할 예정입니다.

 

그리고  yml 코드를 작성해주면 됩니다.

4. Runner 설정

이제, 어느 Runner(우리는 EC2)로 실행할 지, 지정해줘야한다

다시 [Settings] - [Actions]로 가보면.

여기서 하단의 [Add Runner]를 선택하면 다음과 같은 창이 나온다.

여기 빨간 네모박스에 쳐진 명령어들을 여러분의 EC2에 접속해서, runner를 달아주면 된다.

 

순서대로 다운로드 받고, 압축을 풀고, run.sh까지 실행해주면 된다.

 

위와 같이 나오는게 정상이지만 나는

 

위와 같이 에러가 나왔다.

이때 runner는 root계정으로 실행하면 안되므로 모두 sudo RUNNER_ALLOW_RUNASROOT="1" 요 명령을 앞에 추가해줘야 한다. 

sudo RUNNER_ALLOW_RUNASROOT="1" ./config.sh --url https://github.com/dhkim1206/Longstone --token AQSARWANGIOYBOWVQ4RSOEDDMAJL4

다음과 같이 해주었더니 해결되었다.

sudo RUNNER_ALLOW_RUNASROOT="1" ./config.sh --url https://github.com/dhkim1206/Longstone --token AQSARWANGIOYBOWVQ4RSOEDDMAJL4

그러나 또 다음과 같은 에러가 나왔다. 아마 토큰이 제대로 등록이 되지 않았거나 url이 이상한거 같다. 

반응형

댓글