웹프로젝트에서 필요한 key 들을 .env 파일에 저장하고, 접근하도록 적용해두었다.
그러나 .env 파일은 보안을 위해 github 에 올리지 않는 파일인데, 배포 때는 어떻게 되는거지? 하는 의문이 생겼고, 백엔드 팀원이 github actions에 secrets 로 환경변수를 관리하는 방식을 알려주어, 공부하며 기록해둔다.
Github Actions 란?
Github에서 제공하는 CI(Continuos Integration, 지속통합)와 CD(Continuous Deployment, 지속배포)를 위한 서비스이다.
Github Actions 은 특정 이벤트가 발생했을 때, 특정 작업이 일어나게 하거나, 주기적으로 특정 작업을 반복해서 실행시킬 수 있는 자동화 툴이다. 예를 들어 main 브랜치에 코드가 push 되었을 때, 자동으로 코드를 테스트하고 문제가 없다면 배포까지 진행하는 등의 자동화가 가능하다.
이런 자동화 해놓은 작업 과정을 워크플로우(Workflow) 라고 한다. 워크플로우는 .github/workflows 폴더 아래에 yml 파일로 설정할 수 있고, 한 코드 저장소에 여러 개의 워크플로우를 설정할 수 있다.
Github Secrets
API key 나 Password 와 같은 값을 해당 화면에 등록해두면, Github Actions 에서 Secrets 에 접근하여 .env 파일을 생성하도록 설정된 워크플로우를 통해 원하던 대로 환경변수에 접근할 수 있게 된다.
1. 해당 Github repository의 settings > Security > Secrets and variables > Actions 메뉴로 접속한다.
2. ‘New repository secret’ 버튼을 눌러, 사용하고자 하는 변수를 생성한다. Name 에 변수명, Secret 에 key 나 password 값을 입력하고 ‘Add secret’ 버튼을 클릭한다.
내 경우에는 Name 에 ‘DOCKER_ENV’, Secret 에 필요한 환경변수들을 입력했다.
3. 저장된 값을 워크플로우에서 접근할 수 있도록, yml 파일을 작성해준다. 위에서 저장한 secret은 “${{secrets.Name}}” 으로 접근할 수 있다.
내 경우에는 run (실행할 구문)에 touch로 .env 파일을 만들고 , echo 로 위에서 저장한 secret을 .env 파일에 삽입하도록 했다.
//main.yml
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Make Docker Env
run : |
touch ./.env
echo "${{ secrets.DOCKER_ENV }}" > ./.env
이렇게 설정 끝!
main에 push 되면 이 워크플로우가 동작할 예정이다. 문제가 있다면 이후에 내용 추가해두겠다!
출처
'Front-End' 카테고리의 다른 글
[JS] Expected a JavaScript module script but the server responded with a MIME type of "text/html". 에러 해결하기 (0) | 2024.05.12 |
---|---|
[JS, CSS, NGINX] Vanilla JS 로 SPA 구현하기 (2) | 2024.05.12 |
[React] Recoil 새로고침 시 데이터 유지하기 (0) | 2024.05.12 |
[React] Uncaught Error: Invalid hook call. 에러 해결 (0) | 2024.05.12 |
[CSS, Tailwind CSS] DIV 여러개 세로 정렬하기 (0) | 2024.05.12 |