@@ -26,42 +26,29 @@ jobs:
2626 docker build -t ${{ secrets.DOCKER_USERNAME }}/ohmo .
2727 docker push ${{ secrets.DOCKER_USERNAME }}/ohmo:latest
2828
29- # create .env file
30- - name : Create .env file on EC2
29+ # SSH into EC2 and deploy with docker
30+ - name : Deploy on EC2
3131 uses : appleboy/ssh-action@master
3232 with :
3333 host : ${{ secrets.EC2_HOST }}
3434 username : ${{ secrets.EC2_SSH_USER }}
3535 key : ${{ secrets.SSH_PRIVATE_KEY }}
3636 script : |
37- cd /home/ubuntu/Oh-Mo-backend
38- echo "${{ secrets.ENV_VARS }}" > .env
39-
40-
41- # copy docker-compose.yml to EC2
42- - name : Copy docker-compose.yml to EC2
43- uses : appleboy/scp-action@master
44- with :
45- host : ${{ secrets.EC2_HOST }}
46- username : ${{ secrets.EC2_SSH_USER }}
47- key : ${{ secrets.SSH_PRIVATE_KEY }}
48- source : " docker-compose.yml"
49- target : " /home/ubuntu/Oh-Mo-backend"
50-
51- # Deploy and docker-compose up and down
52- - name : Deploy in EC2
53- uses : appleboy/ssh-action@master
54- env :
55- COMPOSE : " /home/ubuntu/Oh-Mo-backend/docker-compose.yml"
56- with :
57- host : ${{ secrets.EC2_HOST }}
58- username : ${{ secrets.EC2_SSH_USER }}
59- key : ${{ secrets.SSH_PRIVATE_KEY }}
60- envs : COMPOSE
61- script : |
37+ # Pull latest image
6238 sudo docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
63- sudo docker-compose -f $COMPOSE stop
64- sudo docker-compose -f $COMPOSE rm -f app
65- sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ohmo
66- sudo docker-compose -f $COMPOSE up -d
67-
39+ sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ohmo:latest
40+
41+ # Stop and remove old container
42+ sudo docker stop ohmo || true
43+ sudo docker rm ohmo || true
44+
45+ # Run new container with environment variables
46+ sudo docker run -d \
47+ --name ohmo \
48+ -p 8080:8080 \
49+ --network oh-mo-backend_app-network \
50+ -e DATABASE_URL=${{ secrets.DATABASE_URL }} \
51+ -e DATABASE_USERNAME=${{ secrets.DATABASE_USERNAME }} \
52+ -e DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }} \
53+ -e JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }} \
54+ ${{ secrets.DOCKER_USERNAME }}/ohmo:latest
0 commit comments