This commit is contained in:
@@ -44,70 +44,37 @@ jobs:
|
|||||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
port: ${{ secrets.SSH_PORT }}
|
port: ${{ secrets.SSH_PORT }}
|
||||||
script: |
|
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
|
# Login to Container Registry
|
||||||
echo "${{ secrets.CI_GITEA_TOKEN }}" | docker login ${{ vars.REGISTRY_URL }} -u ${{ secrets.CI_GITEA_USER }} --password-stdin
|
echo "${{ secrets.CI_GITEA_TOKEN }}" | docker login ${{ vars.REGISTRY_URL }} -u ${{ secrets.CI_GITEA_USER }} --password-stdin
|
||||||
|
|
||||||
# Pull latest image
|
# Pull new image
|
||||||
docker compose pull
|
docker pull ${{ vars.REGISTRY_URL }}/${{ vars.NAMESPACE }}/${{ vars.REPO_NAME }}:${{ github.sha }}
|
||||||
|
|
||||||
# Restart services with new image
|
# Stop and remove old container
|
||||||
docker compose up -d --remove-orphans
|
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
|
# Clean up old images
|
||||||
docker image prune -af --filter "until=168h"
|
docker image prune -af --filter "until=168h"
|
||||||
|
|
||||||
# Show running containers
|
# Show running container
|
||||||
docker compose ps
|
docker ps --filter name=skamp-app
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ services:
|
|||||||
image: ${REGISTRY_URL}/${NAMESPACE}/${REPO_NAME}:${IMAGE_TAG:-latest}
|
image: ${REGISTRY_URL}/${NAMESPACE}/${REPO_NAME}:${IMAGE_TAG:-latest}
|
||||||
container_name: skamp-app
|
container_name: skamp-app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
|
||||||
postgres:
|
|
||||||
condition: service_healthy
|
|
||||||
ports:
|
ports:
|
||||||
- "${APP_PORT:-8080}:8080"
|
- "${APP_PORT:-8080}:8080"
|
||||||
environment:
|
environment:
|
||||||
@@ -45,8 +42,6 @@ services:
|
|||||||
start_period: 60s
|
start_period: 60s
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres_data:
|
|
||||||
driver: local
|
|
||||||
app_logs:
|
app_logs:
|
||||||
driver: local
|
driver: local
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user