Skip to content

Develop (#3)

Develop (#3) #2

name: Deploy to EC2 via Docker Hub
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Log in to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build Docker image
run: |
docker build -t ${{ secrets.DOCKER_HUB_REPOSITORY }}:latest .
- name: Push Docker image
run: |
docker push ${{ secrets.DOCKER_HUB_REPOSITORY }}:latest
- name: Deploy to EC2 instance
env:
EC2_SSH_KEY: ${{ secrets.EC2_SSH_KEY }}
EC2_USER: ${{ secrets.EC2_USER }}
EC2_HOST: ${{ secrets.EC2_HOST }}
run: |
echo "$EC2_SSH_KEY" > ec2_key.pem
chmod 600 ec2_key.pem
ssh -i ec2_key.pem -o StrictHostKeyChecking=no $EC2_USER@$EC2_HOST << 'EOF'
docker pull ${{ secrets.DOCKER_HUB_REPOSITORY }}:latest
docker stop rc-api || true
docker rm rc-api || true
docker run --network=host -d --name rc-api \
-p 1337:1337 \
--env-file /home/ec2-user/envs/rc-api/.env \
-v /strapi-uploads:/usr/src/app/public/uploads \
pawanlive/rc-api:latest
EOF
rm ec2_key.pem