ikemen_hk 2023. 10. 13. 18:12
# docker network create my-net
# docker volume create mysql_data
version: '3.8'

services:
  mysql:
    image: mysql:5.7
    container_name: test-mysql
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - my-net
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: keycloak
      MYSQL_USER: keycloak
      MYSQL_PASSWORD: password

  keycloak:
    image: quay.io/keycloak/keycloak:22.0.4
    container_name: test-keycloak
    networks:
      - my-net
    environment:
      DB_VENDOR: MYSQL
      DB_ADDR: test-mysql
      DB_DATABASE: keycloak
      DB_USER: keycloak
      DB_PASSWORD: password
      KEYCLOAK_ADMIN: direa
      KEYCLOAK_ADMIN_PASSWORD: direa
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
      KEYCLOAK_HTTP_PORT: 8080
      PROXY_ADDRESS_FORWARDING: 'true'
      # JDBC_PARAMS: 'connectTimeout=30'
    command:
      - start
      - --hostname=192.168.0.41:8080
      - --hostname-strict-https=false
      - --hostname-strict=false
      - --proxy=edge
      - --http-enabled=true
      - --http-port=8080
      - --health-enabled=true
    ports:
      - 8080:8080
    depends_on:
      - mysql
    volumes:
      - .local/:/opt/keycloak/data/
    healthcheck:
      test: curl --head -fsS http://localhost:8080/health/ready || exit 1
      start_period: 30s
      interval: 15s
      timeout: 15s
      retries: 5

networks:
  my-net:
    external: true

volumes:
  mysql_data:
      driver: local