@@ -75,27 +75,46 @@ jobs:
7575
7676 - name : Upload Deploy Script to S3
7777 run : |
78- echo "#!/bin/bash" > deploy_script.sh
79- echo "mkdir -p /home/ec2-user/ttoklip/application/deploy" >> deploy_script.sh
80- echo "sudo mkdir -p /home/ec2-user/ttoklip/application" >> deploy_script.sh
81- echo "sudo chown -R ec2-user:ec2-user /home/ec2-user/ttoklip" >> deploy_script.sh
82- echo "sudo chmod -R 755 /home/ec2-user/ttoklip" >> deploy_script.sh
83- echo "aws s3 cp s3://ttoklip-deploy/zips/deploy-package.zip /home/ec2-user/ttoklip/application/deploy-package.zip --region ap-northeast-2" >> deploy_script.sh
84- echo "unzip -o /home/ec2-user/ttoklip/application/deploy-package.zip -d /home/ec2-user/ttoklip/application/deploy" >> deploy_script.sh
85- echo "docker-compose -f /home/ec2-user/ttoklip/application/deploy/docker-compose.prod.yml --env-file /home/ec2-user/ttoklip/application/.env up -d --build" >> deploy_script.sh
78+ cat << 'EOF' > deploy_script.sh
79+ #!/bin/bash
80+
81+ # 디렉토리 생성 및 권한 설정
82+ mkdir -p /home/ec2-user/ttoklip/application
83+ sudo chown -R ec2-user:ec2-user /home/ec2-user/ttoklip
84+ sudo chmod -R 755 /home/ec2-user/ttoklip
85+
86+ # 기존 deploy 디렉토리 백업 또는 삭제
87+ if [ -d "/home/ec2-user/ttoklip/application/deploy" ]; then
88+ # 백업
89+ mv /home/ec2-user/ttoklip/application/deploy /home/ec2-user/ttoklip/application/deploy_$(date +"%Y%m%d%H%M%S")
90+
91+ # 삭제
92+ # rm -rf /home/ec2-user/ttoklip/application/deploy
93+ fi
94+
95+ # S3에서 패키지 다운로드
96+ aws s3 cp s3://ttoklip-deploy/zips/deploy-package.zip /home/ec2-user/ttoklip/application/deploy-package.zip --region ap-northeast-2
97+
98+ # 압축 해제 (상위 디렉토리에 해제)
99+ unzip -o /home/ec2-user/ttoklip/application/deploy-package.zip -d /home/ec2-user/ttoklip/application/
100+
101+ # Docker Compose 실행
102+ docker-compose -f /home/ec2-user/ttoklip/application/deploy/docker-compose.prod.yml --env-file /home/ec2-user/ttoklip/application/.env up -d --build
103+ EOF
86104
87105 zip deploy_script.zip deploy_script.sh
88-
106+
89107 aws s3 cp deploy_script.zip s3://ttoklip-deploy/zips/deploy-script.zip --region ap-northeast-2
90108
109+
110+
91111 - name : Deploy to EC2 via SSM
92112 run : |
93113 aws ssm send-command \
94114 --instance-ids "${{ secrets.EC2_INSTANCE_ID }}" \
95115 --document-name "AWS-RunShellScript" \
96116 --comment "Running deployment script" \
97117 --parameters commands=$'\
98- aws s3 cp s3://ttoklip-deploy/zips/deploy-package.zip /home/ec2-user/ttoklip/application/ --region ap-northeast-2\n\
99118 aws s3 cp s3://ttoklip-deploy/zips/deploy-script.zip /home/ec2-user/ttoklip/application/ --region ap-northeast-2\n\
100119 cd /home/ec2-user/ttoklip/application/\n\
101120 unzip -o deploy-script.zip\n\
@@ -104,5 +123,6 @@ jobs:
104123 --output-s3-bucket-name "ttoklip-deploy" \
105124 --output-s3-key-prefix "ssm-output" \
106125 --region $AWS_REGION
126+
107127
108128
0 commit comments