generated clinet before build #13
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: Build and Deploy to Docker Hub | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build-and-push: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check Out Repo | |
uses: actions/checkout@v2 | |
- name: Log in to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Build and Push Docker image | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
file: ./Docker/Dockerfile.user | |
push: true | |
tags: akashwt/myapp:latest | |
- name: Verify Pushed Image | |
run: docker pull akashwt/myapp:latest | |
- name: Deploy to EC2 | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.SSH_HOST }} | |
username: ${{ secrets.SSH_USERNAME }} | |
key: ${{ secrets.SSH_KEY }} | |
script: | | |
# Ensure there's space available before proceeding | |
df -h | |
# Pull the latest image from Docker Hub | |
sudo docker pull akashwt/myapp:latest | |
# Stop and remove any existing container with the same name | |
sudo docker stop myapp || true | |
sudo docker rm myapp || true | |
# Run the new container with the correct ports and environment variables | |
sudo docker run -d --name myapp -p 3005:3000 \ | |
-e JWT_SECRET=${{ secrets.JWT_SECRET }} \ | |
-e NEXTAUTH_URL=http://3.110.194.177:3005 \ | |
-e DATABASE_URL=${{ secrets.DATABASE_URL }} \ | |
--restart always \ | |
akashwt/myapp:latest |