Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- wil
- 스파르타내일배움캠프
- AWS
- 국비
- Python
- 99클럽
- til
- 컴퓨터개론
- java
- 소프트웨어
- 부트캠프
- 개발자스터디
- 운영체제
- Spring
- 개인공부
- 99일지
- 자바
- 코딩테스트
- 내일배움캠프
- 항해
- 컴퓨터구조론 5판
- Flutter
- 프로그래머스
- 백준
- MySQL
- 중심사회
- 스파르타코딩클럽
- 개발자블로그
- 스파르타내일배움캠프WIL
- 스파르타내일배움캠프TIL
Archives
- Today
- Total
컴공생의 발자취
AWS EC2에 .env 파일로 Docker 환경변수 관리하기 (feat. docker-compose) 본문
728x90
반응형
Keyword
1. docker-compose envfile
env 파일을 나누는 이유는?
이전의 백엔드 배포 로컬의 인텔리제이에서 docker 이미지를 만들었기 때문에 properties-secrets.yml이 포함되어 이미지가 만들어졌다. 이렇게 되면 public 도커허브에 올려놓은 이미지를 받아서 환경변수를 볼 수 있다. 그럼 보안상 문제가 생긴다. 또한, 환경변수가 도커 이미지에 들어가 있다면 CI/CD에서 환경변수 변경 시 매번 도커 이미지를 다시 만들어서 EC2에서 도커 이미지를 받은 다음 실행시켜야 하는 번거로움이 존재한다. 그래서 추후 CI/CD를 위해서도 환경변수는 분리해 놓아야 관리가 편하기 때문에 env 파일로 분리할 것이다.
.env 파일 생성
* 해당 과정은 EC2 인스턴스에서 진행
EC2 인스턴스에 접속
.env 파일 생성:
- env 파일을 생성할 디렉토리 만들기
mkdir config // 앞으로 해당 디렉토리는 환경변수 저장
cd config // config 디렉토리로 이동
vi .env // .env 파일 생성
i // 작성 모드
// .env 파일 내용
// 띄어쓰기가 없어야 함!
POSTGRES_URL= // ex: jdbc:postgresql://today-space-db:5432/space
POSTGRES_DB= // ex: space
POSTGRES_USER= // 작성
POSTGRES_PASSWORD= // 작성
JWT_SECRET_KEY= // 작성
JWT_ACCESS_TOKEN_EXPIRATION= // 작성
JWT_REFRESH_TOKEN_EXPIRATION= // 작성
------------------------------------------------------------------------------------
ESC(버튼) + :wq // 작성 모드 종료 후 저장하고 나가기
w // 저장
q // 나가기
docker - compose 업데이트
* 해당 과정은 EC2 인스턴스에서 진행
docker-compose 경로로 이동
- 경로 이동
// 현재 경로가 /config라는 가정 하에 진행
// 아래 명령어 선택해서 사용할 것
cd .. // 상위 디렉토리로 이동
cd - // 이전 디렉토리로 이동
docker-compose 업데이트
- docker-compose 업데이트
vi docker-compose.yml // app.conf 파일 작성하기
i // 작성 모드
// docker-compose.yml 파일 내용
version: '3.8'
services:
app:
image: today-space-back:latest
container_name: today-space-back
env_file:
- ./config/.env
ports:
- "8080:8080"
depends_on:
- db
db:
image: postgres:14
container_name: today-space-db
env_file:
- ./config/.env
volumes:
- db_data:/var/lib/postgresql/data
ports:
- "5432:5432"
nginx:
image: nginx:latest
container_name: today-space-nginx
ports:
- "80:80"
volumes:
- ./data/nginx/app.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
volumes:
db_data:
------------------------------------------------------------------------------------
ESC(버튼) + :wq // 작성 모드 종료 후 저장하고 나가기
w // 저장
q // 나가기
참고 자료
- env_file vs enviroment
728x90
반응형
'🐳 Docker' 카테고리의 다른 글
GitHub tag & Docker Image 자동 배포하기 (feat. Jenkins) (2) | 2024.10.13 |
---|---|
EC2의 Docker 안에 Jenkins Container 올리기 (feat. Webhook CI/CD 구축 & DooD) (4) | 2024.10.11 |
Docker를 활용해 AWS EC2에 Spring Boot 배포하기 (feat. Nginx) (2) | 2024.10.01 |
Jenkins DooD 권한 문제 해결하기 (feat. troubleshooting) (0) | 2024.09.25 |
Docker 설치 (feat. Mac) (0) | 2024.07.04 |