8282 source : docker-compose-${{ inputs.environment }}.yml
8383 target : /opt/focus-to-level-up
8484
85+ - name : Copy deploy script to EC2
86+ uses : appleboy/scp-action@master
87+ with :
88+ host : ${{ env.EC2_HOST }}
89+ username : ${{ secrets.EC2_USERNAME }}
90+ key : ${{ env.EC2_SSH_KEY }}
91+ port : 22
92+ source : scripts/deploy.sh
93+ target : /opt/focus-to-level-up
94+
8595 - name : Copy DB init scripts to EC2
8696 uses : appleboy/scp-action@master
8797 with :
@@ -113,19 +123,28 @@ jobs:
113123 port : 22
114124 script : |
115125 set -e
116-
126+
127+ # .env 파일 생성
117128 cat > /opt/focus-to-level-up/.env << 'ENV_EOF'
118129 ${{ inputs.environment == 'prod' && secrets.ENV_FILE_PROD || secrets.ENV_FILE_DEV }}
119130 ENV_EOF
120-
131+
132+ # 쉘 환경 변수 설정
121133 export IMAGE_TAG="${IMAGE_TAG}"
122134 export DOCKER_USERNAME="${DOCKER_USERNAME}"
123135 export DOCKER_REPO="${DOCKER_REPO}"
124-
136+
137+ # Docker 로그인
125138 echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
126-
127- docker compose -f /opt/focus-to-level-up/docker-compose.yml pull app
128- docker compose -f /opt/focus-to-level-up/docker-compose.yml up -d
139+
140+ # DB 및 공통 서비스 확인
141+ if [ "${{ inputs.environment }}" != "prod" ]; then
142+ docker compose -f /opt/focus-to-level-up/docker-compose.yml up -d mysql redis
143+ sleep 15
144+ fi
145+
146+ # docker compose -f /opt/focus-to-level-up/docker-compose.yml pull app
147+ # docker compose -f /opt/focus-to-level-up/docker-compose.yml up -d
129148
130149 # Extract DB credentials from .env file
131150 DB_ROOT_PASSWORD=$(grep '^DB_ROOT_PASSWORD=' /opt/focus-to-level-up/.env | cut -d '=' -f2)
@@ -152,5 +171,12 @@ jobs:
152171 docker exec focus-mysql mysql -uroot -p${DB_ROOT_PASSWORD} -e "GRANT ALL PRIVILEGES ON focus_meta_db.* TO '${DB_USERNAME}'@'%';" || true
153172 docker exec focus-mysql mysql -uroot -p${DB_ROOT_PASSWORD} -e "FLUSH PRIVILEGES;" || true
154173 fi
174+
175+ # 6. 배포 스크립트 실행 권한 부여 및 실행
176+ echo "Executing Blue-Green Deployment Script..."
177+ chmod +x /opt/focus-to-level-up/scripts/deploy.sh
178+
179+ # deploy.sh 실행
180+ /opt/focus-to-level-up/scripts/deploy.sh
155181
156182 docker image prune -f
0 commit comments