update the workflow #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy to AWS | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build-and-deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Log in to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v2 | |
with: | |
region: ${{ secrets.AWS_REGION }} | |
- name: Build and push Docker image for socket | |
run: | | |
docker buildx build --platform linux/amd64 -t ${{ secrets.ECR_SOCKET_REPO_URI }}:latest ./socket | |
docker push ${{ secrets.ECR_SOCKET_REPO_URI }}:latest | |
- name: Build and push Docker image for server | |
run: | | |
docker buildx build --platform linux/amd64 -t ${{ secrets.ECR_SERVER_REPO_URI }}:latest ./server | |
docker push ${{ secrets.ECR_SERVER_REPO_URI }}:latest | |
- name: Deploy to EC2 Instance | |
run: | | |
ssh -o StrictHostKeyChecking=no -i ${{ secrets.EC2_SSH_KEY }} ubuntu@${{ secrets.EC2_INSTANCE_IP }} << 'EOF' | |
docker pull ${{ secrets.ECR_SOCKET_REPO_URI }}:latest | |
docker pull ${{ secrets.ECR_SERVER_REPO_URI }}:latest | |
docker stop socket-container || true | |
docker stop server-container || true | |
docker rm socket-container || true | |
docker rm server-container || true | |
docker run -d --name socket-container -p 3000:3000 ${{ secrets.ECR_SOCKET_REPO_URI }}:latest | |
docker run -d --name server-container -p 4000:4000 ${{ secrets.ECR_SERVER_REPO_URI }}:latest | |
EOF |