diff --git a/serv_nginx/docker-compose.yml b/serv_nginx/docker-compose.yml index 3947b3d..4d448a8 100644 --- a/serv_nginx/docker-compose.yml +++ b/serv_nginx/docker-compose.yml @@ -165,17 +165,39 @@ services: container_name: keycloak restart: unless-stopped environment: + # Database configuration + KC_DB: postgres + KC_DB_URL: jdbc:postgresql://keycloak-db:5432/keycloak + KC_DB_USERNAME: keycloak + KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak} + + # Admin credentials KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin} - KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak} - # Убрать KC_HOSTNAME_URL - используем конфиг файл + + # HTTP configuration KC_HTTP_ENABLED: true + KC_HTTP_PORT: 8080 KC_HTTP_RELATIVE_PATH: /auth + + # Hostname configuration + KC_HOSTNAME: https://yalarba.ru + KC_HOSTNAME_PATH: /auth KC_HOSTNAME_STRICT: true KC_HOSTNAME_STRICT_HTTPS: true + KC_HOSTNAME_STRICT_BACKCHANNEL: false + + # Proxy configuration KC_PROXY: reencrypt - # Оптимизация для прода - JAVA_OPTS: "-Xms512m -Xmx1024m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true" + + # Health checks + KC_HEALTH_ENABLED: true + + # Features + KC_FEATURES: token-exchange,admin-fine-grained-authz + + # Java options + JAVA_OPTS: "-Xms512m -Xmx1024m -Djava.net.preferIPv4Stack=true" volumes: - keycloak_data:/opt/keycloak/data networks: @@ -185,24 +207,6 @@ services: keycloak-db: condition: service_healthy - keycloak-db: - image: postgres:15-alpine - container_name: keycloak-db - restart: unless-stopped - environment: - POSTGRES_DB: keycloak - POSTGRES_USER: keycloak - POSTGRES_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak} - volumes: - - keycloak_db_data:/var/lib/postgresql/data - networks: - - keycloak-network - healthcheck: - test: ["CMD-SHELL", "pg_isready -U keycloak"] - interval: 5s - timeout: 10s - retries: 5 - volumes: certbot_data: certbot_www: diff --git a/serv_nginx/keycloak/Dockerfile b/serv_nginx/keycloak/Dockerfile index f6a4aaf..0ab8c8f 100644 --- a/serv_nginx/keycloak/Dockerfile +++ b/serv_nginx/keycloak/Dockerfile @@ -1,22 +1,11 @@ -FROM quay.io/keycloak/keycloak:24.0.4 as builder - -WORKDIR /opt/keycloak - -# Включение необходимых фич -RUN /opt/keycloak/bin/kc.sh build --features=token-exchange,admin-fine-grained-authz - FROM quay.io/keycloak/keycloak:24.0.4 -# Копируем собранный билд -COPY --from=builder /opt/keycloak/ /opt/keycloak/ - WORKDIR /opt/keycloak -# Копируем конфигурационный файл -COPY keycloak.conf /opt/keycloak/conf/ +# Копируем конфигурационный файл (опционально, если используете переменные окружения) +# COPY keycloak.conf /opt/keycloak/conf/ -# Экспортируем порт EXPOSE 8080 -# Команда запуска (оставляем стандартного пользователя) +# Запуск с явным указанием всех параметров через переменные окружения ENTRYPOINT ["/opt/keycloak/bin/kc.sh", "start", "--optimized"] \ No newline at end of file diff --git a/serv_nginx/keycloak/keycloak.conf b/serv_nginx/keycloak/keycloak.conf index b6bf43d..9e551ee 100644 --- a/serv_nginx/keycloak/keycloak.conf +++ b/serv_nginx/keycloak/keycloak.conf @@ -1,8 +1,6 @@ -# Database configuration +# Database configuration - ИСПРАВЛЕННЫЙ ФОРМАТ db=postgres -db-url-host=keycloak-db -db-url-port=5432 -db-url-database=keycloak +db-url=jdbc:postgresql://keycloak-db:5432/keycloak db-username=keycloak db-password=${KC_DB_PASSWORD} @@ -33,4 +31,7 @@ health-enabled=true features=token-exchange,admin-fine-grained-authz # Logging -log-level=INFO \ No newline at end of file +log-level=INFO + +# Transaction recovery (для исправления предупреждения) +transaction-xa-enabled=true \ No newline at end of file