플라스틱 컵 재활용 선순환 생태계 조성 프로젝트
.
├── docker # Docker 관련 파일들을 모아둔 폴더
├── models # API에 사용되는 모델들을 정의한 폴더
├── requirements # 필요한 패키지들을 정의한 파일들을 모아둔 폴더
├── routes # API router 들을 정의한 폴더
├── utils # util 모음 폴더
├── .env.example # 환경변수 예시 파일
├── config.py # 설정을 관리하는 폴더
├── database.py # DB 연결 객체를 제공해주는 파일
├── docker-compose.dev.yaml # 개발용 docker-compose 파일
├── docker-compose.prod.yaml # 배포용 docker-compose 파일
├── docs.html # 호스팅용 API 문서 파일
├── gunicorn_conf.py # 배포 시 사용하는 gunicorn 설정을 정의하는 파일
├── main_consumer.py # IOT 디바이스와 DB를 연결해주는 Consumer 진입점
├── main.py # 애플리케이션 진입점
└── prestart.sh # docker를 이용해서 서버 실행시 처음 실행하는 스크립트
docker context use default
docker compose -f docker-compose.dev.yaml --env-file=.env.example [-d] up [--build]
docker context create ecs --local-simulation ecsLocal
docker context use ecsLocal
docker-compose.prod.yaml와 .env.example을 참고하여 .env 파일 작성
docker compose -f docker-compose.prod.yaml --env-file=.env [-d] up [--build]
현재 실행중인 서비스 컨테이너들 중지
docker compose -f <compose file name> stop
현재 실행중이지 않은 서비스 컨테이너들 제거
docker compose -f <compose file name> rm
정의된 서비스들의 컨테이너 중지 및 제거
docker compose -f <compose file name> down
docker ecs context 생성 및 AWS Profile 입력
docker context create ecs contextName
docker context use contextName
컨테이너 레지스트리 ECR 로그인
aws ecr get-login-password --region us-west-2 |
docker login --username AWS --password-stdin 573620237252.dkr.ecr.us-west-2.amazonaws.com/inobus
.env file 작성
cp .env.example .env
Docker image build
docker context use default
docker compose -f docker-compose.prod.yaml --env-file .env build
Docker image를 ECR로 push
docker context use default
docker compose -f docker-compose.prod.yaml --env-file .env push
Docker cli를 통해 AWS CloudFormation으로 배포
docker context use contextName
docker compose -f docker-compose.prod.yaml --env-file .env up
lefthook install
실행pre-push:
exclude_tags:
- app
- iot
pre-commit:
exclude_tags:
- app
- iot