docker搭建SSO登录—kratos

144 次阅读

本文最后更新于 2026年5月11日。

github
https://github.com/ory/kratos

dockerhub
https://hub.docker.com/r/oryd/kratos

官方文档
https://www.ory.sh/docs/kratos/install#docker

dockercompose可以使用下面的文件
https://github.com/ory/kratos/blob/master/quickstart.yml

报错了

Volume "kratos_kratos-sqlite"  Creating
 Volume "kratos_kratos-sqlite"  Created
 Container kratos-kratos-migrate-1  Creating
 Container kratos-kratos-selfservice-ui-node-1  Creating
 Container kratos-mailslurper-1  Creating
Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /opt/1panel/docker/compose/kratos/contrib/quickstart/kratos/email-password
docker-compose up failed

https://github.com/ory/kratos/blob/master/contrib/quickstart/kratos/email-password/kratos.yml

version: '3.7'
services:
  kratos-migrate:
    image: oryd/kratos:v1.0.0
    environment:
      - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true&mode=rwc
    volumes:
      - type: volume
        source: kratos-sqlite
        target: /var/lib/sqlite
        read_only: false
      - type: bind
        source: ./contrib/quickstart/kratos/email-password
        target: /etc/config/kratos
    command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes
    restart: on-failure
    networks:
      - 1panel-network    
  kratos-selfservice-ui-node:
    image: oryd/kratos-selfservice-ui-node:v1.0.0
    environment:
      - KRATOS_PUBLIC_URL=http://kratos:4433/
      - KRATOS_BROWSER_URL=http://127.0.0.1:4433/
    networks:
      - 1panel-network    
    restart: on-failure
  kratos:
    depends_on:
      - kratos-migrate
    image: oryd/kratos:v1.0.0
    ports:
      - '4433:4433' # public
      - '4434:4434' # admin
    restart: unless-stopped
    environment:
      - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true
      - 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: ./contrib/quickstart/kratos/email-password
        target: /etc/config/kratos
    networks:
      - 1panel-network    
  mailslurper:
    image: oryd/mailslurper:latest-smtps
    ports:
      - '4436:4436'
      - '4437:4437'
    networks:
      - 1panel-network    

networks:
  1panel-network:
    external: true

volumes:
  kratos-sqlite: