This commit is contained in:
@@ -44,70 +44,37 @@ jobs:
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
port: ${{ secrets.SSH_PORT }}
|
||||
script: |
|
||||
# Navigate to deployment directory
|
||||
cd ${{ secrets.DEPLOY_PATH }}
|
||||
|
||||
# Create .env file with all secrets
|
||||
cat > .env << 'EOF'
|
||||
# Deployment
|
||||
REGISTRY_URL=${{ vars.REGISTRY_URL }}
|
||||
NAMESPACE=${{ vars.NAMESPACE }}
|
||||
REPO_NAME=${{ vars.REPO_NAME }}
|
||||
IMAGE_TAG=${{ github.sha }}
|
||||
CI_GITEA_USER=${{ secrets.CI_GITEA_USER }}
|
||||
CI_GITEA_TOKEN=${{ secrets.CI_GITEA_TOKEN }}
|
||||
|
||||
# Application
|
||||
APP_PORT=${{ secrets.APP_PORT }}
|
||||
SPRING_PROFILES_ACTIVE=${{ secrets.SPRING_PROFILES_ACTIVE }}
|
||||
APPLICATION_NAME=${{ secrets.APPLICATION_NAME }}
|
||||
CORS_ALLOWED_ORIGINS=${{ secrets.CORS_ALLOWED_ORIGINS }}
|
||||
|
||||
# PostgreSQL Configuration
|
||||
POSTGRES_HOST=${{ secrets.POSTGRES_HOST }}
|
||||
POSTGRES_PORT=${{ secrets.POSTGRES_PORT }}
|
||||
POSTGRES_DB=${{ secrets.POSTGRES_DB }}
|
||||
POSTGRES_USER=${{ secrets.POSTGRES_USER }}
|
||||
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
|
||||
|
||||
# Keycloak Configuration
|
||||
KEYCLOAK_URL=${{ secrets.KEYCLOAK_URL }}
|
||||
KEYCLOAK_REALM=${{ secrets.KEYCLOAK_REALM }}
|
||||
KEYCLOAK_ISSUER_URI=${{ secrets.KEYCLOAK_ISSUER_URI }}
|
||||
|
||||
# MinIO (S3) Configuration
|
||||
MINIO_ENDPOINT=${{ secrets.MINIO_ENDPOINT }}
|
||||
MINIO_ACCESS_KEY=${{ secrets.MINIO_ACCESS_KEY }}
|
||||
MINIO_SECRET_KEY=${{ secrets.MINIO_SECRET_KEY }}
|
||||
|
||||
# AWS S3 Configuration (if needed)
|
||||
AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_S3_BUCKET_NAME=${{ secrets.AWS_S3_BUCKET_NAME }}
|
||||
AWS_S3_REGION=${{ secrets.AWS_S3_REGION }}
|
||||
AWS_S3_ENDPOINT=${{ secrets.AWS_S3_ENDPOINT }}
|
||||
|
||||
# Hibernate Configuration
|
||||
HIBERNATE_DDL_AUTO=${{ secrets.HIBERNATE_DDL_AUTO }}
|
||||
|
||||
# Java Options
|
||||
JAVA_OPTS=${{ secrets.JAVA_OPTS }}
|
||||
EOF
|
||||
|
||||
# Set proper permissions
|
||||
chmod 600 .env
|
||||
|
||||
# Login to Container Registry
|
||||
echo "${{ secrets.CI_GITEA_TOKEN }}" | docker login ${{ vars.REGISTRY_URL }} -u ${{ secrets.CI_GITEA_USER }} --password-stdin
|
||||
|
||||
# Pull latest image
|
||||
docker compose pull
|
||||
# Pull new image
|
||||
docker pull ${{ vars.REGISTRY_URL }}/${{ vars.NAMESPACE }}/${{ vars.REPO_NAME }}:${{ github.sha }}
|
||||
|
||||
# Restart services with new image
|
||||
docker compose up -d --remove-orphans
|
||||
# Stop and remove old container
|
||||
docker stop skamp-app || true
|
||||
docker rm skamp-app || true
|
||||
|
||||
# Start new container with environment variables
|
||||
docker run -d \
|
||||
--name skamp-app \
|
||||
--restart unless-stopped \
|
||||
-p ${{ secrets.APP_PORT }}:8080 \
|
||||
-e SPRING_PROFILES_ACTIVE=${{ secrets.SPRING_PROFILES_ACTIVE }} \
|
||||
-e SPRING_DATASOURCE_URL=jdbc:postgresql://${{ secrets.POSTGRES_HOST }}:${{ secrets.POSTGRES_PORT }}/${{ secrets.POSTGRES_DB }} \
|
||||
-e SPRING_DATASOURCE_USERNAME=${{ secrets.POSTGRES_USER }} \
|
||||
-e SPRING_DATASOURCE_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} \
|
||||
-e SPRING_JPA_HIBERNATE_DDL_AUTO=${{ secrets.HIBERNATE_DDL_AUTO }} \
|
||||
-e SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI=${{ secrets.KEYCLOAK_ISSUER_URI }} \
|
||||
-e CORS_ALLOWED_ORIGINS=${{ secrets.CORS_ALLOWED_ORIGINS }} \
|
||||
-e S3_ACCESS_KEY=${{ secrets.MINIO_ACCESS_KEY }} \
|
||||
-e S3_SECRET_KEY=${{ secrets.MINIO_SECRET_KEY }} \
|
||||
-e S3_ENDPOINT=${{ secrets.MINIO_ENDPOINT }} \
|
||||
-e SERVER_PORT=8080 \
|
||||
-e JAVA_OPTS="${{ secrets.JAVA_OPTS }}" \
|
||||
${{ vars.REGISTRY_URL }}/${{ vars.NAMESPACE }}/${{ vars.REPO_NAME }}:${{ github.sha }}
|
||||
|
||||
# Clean up old images
|
||||
docker image prune -af --filter "until=168h"
|
||||
|
||||
# Show running containers
|
||||
docker compose ps
|
||||
# Show running container
|
||||
docker ps --filter name=skamp-app
|
||||
|
||||
@@ -3,9 +3,6 @@ services:
|
||||
image: ${REGISTRY_URL}/${NAMESPACE}/${REPO_NAME}:${IMAGE_TAG:-latest}
|
||||
container_name: skamp-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "${APP_PORT:-8080}:8080"
|
||||
environment:
|
||||
@@ -45,8 +42,6 @@ services:
|
||||
start_period: 60s
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
driver: local
|
||||
app_logs:
|
||||
driver: local
|
||||
|
||||
|
||||
Reference in New Issue
Block a user