Skip to content

added demo gif and docker-compose.prod.yml #53

added demo gif and docker-compose.prod.yml

added demo gif and docker-compose.prod.yml #53

Workflow file for this run

name: Deploy Django Docker App
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Log in to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Create .env.prod file
run: |
echo "DJANGO_ENV=${{ secrets.DJANGO_ENV }}" >> .env.prod
echo "DJANGO_SETTINGS_MODULE=${{ secrets.DJANGO_SETTINGS_MODULE }}" >> .env.prod
echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env.prod
echo "ENCRYPTION_KEY=${{ secrets.ENCRYPTION_KEY }}" >> .env.prod
echo "ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }}" >> .env.prod
echo "REDIS_HOST=${{ secrets.REDIS_HOST }}" >> .env.prod
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env.prod
echo "DB_USER=${{ secrets.DB_USER }}" >> .env.prod
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env.prod
echo "DB_HOST=${{ secrets.DB_HOST }}" >> .env.prod
echo "DB_PORT=${{ secrets.DB_PORT }}" >> .env.prod
echo "DATABASE=${{ secrets.DATABASE }}" >> .env.prod
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env.prod
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env.prod
- name: Build Docker Compose services
run: |
docker compose -f docker-compose.yml build
- name: Push Docker Compose services
run: |
docker compose -f docker-compose.yml push
- name: Set up SSH for deployment
uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Deploy to production using Docker Compose
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.PRODUCTION_USER }}@${{ secrets.PRODUCTION_HOST }} << EOF
cd /home
docker compose pull
docker compose down
docker compose up -d --build
EOF