Skip to content

Instantly share code, notes, and snippets.

@renepardon
Created August 19, 2021 05:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renepardon/a61a6df5da19bab414db2edb7633b557 to your computer and use it in GitHub Desktop.
Save renepardon/a61a6df5da19bab414db2edb7633b557 to your computer and use it in GitHub Desktop.
keycloak swarm deploy
version: "3.8"
services:
keycloak:
image: jboss/keycloak
env_file:
- ./.env
environment:
JDBC_PARAMS: "useSSL=false"
DB_VENDOR: "h2"
# DB_VENDOR: "mariadb"
# DB_ADDR: "db.auth.local"
# DB_PORT: "3306"
# DB_DATABASE: "${DB_DATABASE}"
# DB_USER: "${DB_USERNAME}"
# DB_PASSWORD: "${DB_PASSWORD}"
KEYCLOAK_USER: somethingmoresecurethanjustadmin
KEYCLOAK_PASSWORD: "${KEYCLOAK_ADMIN_PASSWORD}"
KEYCLOAK_HOSTNAME: "auth.domain.tld"
PROXY_ADDRESS_FORWARDING: "true"
volumes:
- "/mnt/glusterfs/auth-domain-tld/data/:/opt/jboss/keycloak/standalone/data/"
networks:
- traefik_proxy
deploy:
resources:
limits:
memory: 1024M
reservations:
memory: 512M
placement:
constraints: [ node.hostname == iamthebest ]
replicas: 1
update_config:
parallelism: 1
delay: 10s
labels:
- "traefik.enable=true"
- "traefik.port=8080"
- "traefik.docker.network=traefik_proxy"
- "traefik.http.routers.auth.rule=Host(`auth.domain.tld`)"
- "traefik.http.routers.auth.entrypoints=websecure"
- "traefik.http.routers.auth.tls=true"
- "traefik.http.routers.auth.tls.certresolver=traefik_resolver"
- "traefik.http.routers.auth.service=auth_service"
- "traefik.http.services.auth_service.loadbalancer.server.port=8080"
# mariadb:
# image: mariadb:latest
# env_file:
# - ./.env
# environment:
# MYSQL_DATABASE: "${DB_DATABASE}"
# MYSQL_USER: "${DB_USERNAME}"
# MYSQL_PASSWORD: "${DB_PASSWORD}"
# MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
# volumes:
# - '/mnt/glusterfs/auth-domain-tld/mysql:/var/lib/mysql'
# networks:
# traefik_proxy:
# aliases:
# - db.auth.local
# deploy:
# resources:
# limits:
# memory: 512M
# reservations:
# memory: 256M
# placement:
# constraints: [ node.hostname == iamthebest ]
# replicas: 1
# labels:
# - "traefik.enable=false"
# - "traefik.docker.network=traefik_proxy"
networks:
traefik_proxy:
external: true
name: traefik_proxy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment