```version: '3.7' services: kratos-migrate: ...
# talk-keto
b
Copy code
version: '3.7'
services:
  kratos-migrate:
    image: oryd/kratos:v0.10.1
    depends_on:
      - postgresd
    environment:
      - DSN=<postgres://kratos:secret@postgresd:5432/kratos?sslmode=disable&max_conns=20&max_idle_conns=4>
    volumes:
      - type: volume
        source: kratos-sqlite
        target: /var/lib/sqlite
        read_only: false
      - type: bind
        source: ./config
        target: /etc/config/kratos
    command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes
    restart: on-failure
    networks:
      - intranet
  kratos-selfservice-ui-node:
    image: oryd/kratos-selfservice-ui-node:v0.10.1
    ports:
      - "4455:4455"
    environment:
    - PORT=4455
    - SECURITY_MODE=
    - KRATOS_PUBLIC_URL=<http://kratos:4433/>
    - KRATOS_BROWSER_URL=<http://127.0.0.1:4433/>
    networks:
    - intranet
    restart: on-failure
  kratos:
    depends_on:
      - kratos-migrate
    image: oryd/kratos:v0.10.1
    ports:
      - '4433:4433' # public
      - '4434:4434' # admin
    restart: unless-stopped
    environment:
      - DSN=<postgres://kratos:secret@postgresd:5432/kratos?sslmode=disable&max_conns=20&max_idle_conns=4>
      - LOG_LEVEL=trace
    command: serve -c /etc/config/kratos/kratos.yml --dev --watch-courier
    volumes:
      - type: volume
        source: kratos-sqlite
        target: /var/lib/sqlite
        read_only: false
      - type: bind
        source: ./config
        target: /etc/config/kratos
    networks:
      - intranet
  postgresd:
    image: postgres:9.6
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=kratos
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=kratos
    networks:
      - intranet
  mailslurper:
    image: oryd/mailslurper:latest-smtps
    ports:
      - '4436:4436'
      - '4437:4437'
    networks:
      - intranet
  keto-migrate:
    image: oryd/keto:v0.10.0-alpha.0
    volumes:
      - type: bind
        source: ./keto
        target: /home/ory
    environment:
      - LOG_LEVEL=debug
      - DSN=<postgres://dbuser:secret@postgres-keto:5432/accesscontroldb?sslmode=disable>
    command: ["migrate", "up", "-y"]
    restart: on-failure
    networks:
      - intranet

  keto:
    image: oryd/keto:v0.10.0-alpha.0
    volumes:
      - type: bind
        source: ./keto
        target: /home/ory
    ports:
      - "4466:4466"
      - "4467:4467"
    depends_on:
      - keto-migrate
    environment:
      - DSN=<postgres://dbuser:secret@postgres-keto:5432/accesscontroldb?sslmode=disable>
    restart: on-failure
    networks:
      - intranet

  postgres-keto:
    image: postgres:9.6
    ports:
      - "15432:5432"
    environment:
      - POSTGRES_USER=dbuser
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=accesscontroldb
    networks:
      - intranet

networks:
  intranet:
volumes:
  kratos-sqlite: