Fix container conflicts and environment variables properly
- Add aggressive container cleanup including specific problematic container ID - Export environment variables before docker compose commands - Remove all containers with 'portfolio' in name to prevent conflicts - Fix both rolling update and fresh deployment cases - Tested locally and verified working - Environment variables now properly passed to docker compose
This commit is contained in:
@@ -72,8 +72,28 @@ jobs:
|
||||
docker compose down --remove-orphans || true
|
||||
docker rm -f portfolio-app portfolio-postgres portfolio-redis || true
|
||||
|
||||
# Force remove the specific problematic container
|
||||
docker rm -f 4dec125499540f66f4cb407b69d9aee5232f679feecd71ff2369544ff61f85ae || true
|
||||
|
||||
# Clean up any containers with portfolio in the name
|
||||
docker ps -a --format "{{.Names}}" | grep portfolio | xargs -r docker rm -f || true
|
||||
|
||||
# Ensure database and redis are running
|
||||
echo "🔧 Ensuring database and redis are running..."
|
||||
|
||||
# Export environment variables for docker compose
|
||||
export NODE_ENV="${{ vars.NODE_ENV }}"
|
||||
export LOG_LEVEL="${{ vars.LOG_LEVEL }}"
|
||||
export NEXT_PUBLIC_BASE_URL="${{ vars.NEXT_PUBLIC_BASE_URL }}"
|
||||
export NEXT_PUBLIC_UMAMI_URL="${{ vars.NEXT_PUBLIC_UMAMI_URL }}"
|
||||
export NEXT_PUBLIC_UMAMI_WEBSITE_ID="${{ vars.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}"
|
||||
export MY_EMAIL="${{ vars.MY_EMAIL }}"
|
||||
export MY_INFO_EMAIL="${{ vars.MY_INFO_EMAIL }}"
|
||||
export MY_PASSWORD="${{ secrets.MY_PASSWORD }}"
|
||||
export MY_INFO_PASSWORD="${{ secrets.MY_INFO_PASSWORD }}"
|
||||
export ADMIN_BASIC_AUTH="${{ secrets.ADMIN_BASIC_AUTH }}"
|
||||
|
||||
# Start services with environment variables
|
||||
docker compose up -d postgres redis
|
||||
|
||||
# Wait for services to be ready
|
||||
@@ -230,6 +250,19 @@ jobs:
|
||||
echo "✅ Rolling update completed!"
|
||||
else
|
||||
echo "🆕 Fresh deployment..."
|
||||
|
||||
# Export environment variables for docker compose
|
||||
export NODE_ENV="${{ vars.NODE_ENV }}"
|
||||
export LOG_LEVEL="${{ vars.LOG_LEVEL }}"
|
||||
export NEXT_PUBLIC_BASE_URL="${{ vars.NEXT_PUBLIC_BASE_URL }}"
|
||||
export NEXT_PUBLIC_UMAMI_URL="${{ vars.NEXT_PUBLIC_UMAMI_URL }}"
|
||||
export NEXT_PUBLIC_UMAMI_WEBSITE_ID="${{ vars.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}"
|
||||
export MY_EMAIL="${{ vars.MY_EMAIL }}"
|
||||
export MY_INFO_EMAIL="${{ vars.MY_INFO_EMAIL }}"
|
||||
export MY_PASSWORD="${{ secrets.MY_PASSWORD }}"
|
||||
export MY_INFO_PASSWORD="${{ secrets.MY_INFO_PASSWORD }}"
|
||||
export ADMIN_BASIC_AUTH="${{ secrets.ADMIN_BASIC_AUTH }}"
|
||||
|
||||
docker compose up -d
|
||||
fi
|
||||
env:
|
||||
|
||||
Reference in New Issue
Block a user