현재 프로젝트에 적용된 docker 플로우는 다음과 같습니다.
git aciton 의 gradle.yml 파일을 이용하여 docker 이미지 빌드를 하여 ec2 인스턴스를 이미지화 합니다.
auto scaling 적용 후 시작 템플릿의 script 에 docker 플로우를 작성해주었습니다.
gradle.yml
# docker 이미지 빌드
- name: Docker build
run: |
sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
sudo docker build -t app .
sudo docker tag app ${{ secrets.DOCKER_USERNAME }}/ff:latest
sudo docker push ${{ secrets.DOCKER_USERNAME }}/ff:latest
.)에 있는 Dockerfile을 사용하여 Docker 이미지를 빌드합니다. 이미지의 이름은 "app"으로 지정됩니다.시작 템플릿 script
#!/bin/bash
sudo docker pull flashfrenzy/ff:latest
sudo docker stop $(sudo docker ps -a -q)
sudo docker run -d --log-driver=syslog -p 8080:8080 flashfrenzy/ff:latest
sudo docker rm $(sudo docker ps --filter 'status=exited' -a -q)
sudo docker image prune -a -f