docker - 如何将 Keycloak docker 镜像链接到 MariaDB docker

标签 docker mariadb keycloak

我的应用程序有一个 Maria DB docker 镜像。

我现在已经提取了 Keycloak 图像。它使用默认的 h2。但我想使用现有的 maria DB 镜像

文档要求我创建网络等,但我不确定如何在云中执行此操作。因此,寻找基于配置的解决方案,即更改 Keycloak 图像配置以链接到 Maria DB 图像。我没有使用 docker compose,我只是拉取了镜像。

https://github.com/keycloak/keycloak-containers/blob/master/server/README.md#environment-variables

不确定什么是环境变量 - 这些变量是在 keycloak 镜像内部还是在主机上?

启动命令:docker run -p 7080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak

而且我发现它非常不安全。有安全的方法吗?

编辑: 我从 docker 仪表板打开 cli,然后输入

env

但不知道如何添加更多环境变量,例如

PROXY_ADDRESS_FORWARDING: 'true'
# PostgreSQL DB settings
DB_VENDOR: postgres
DB_ADDR: 172.17.0.1
DB_PORT: 5432
DB_DATABASE: keycloak
DB_SCHEMA: public
DB_USER: keycloak
DB_PWD: keycloak

(如何将 PROXY_ADDRESS_FORWARDING=true 从 false 更改?)

最佳答案

我能够做到这一点。您需要定义一个网络并向该网络添加数据库和 keycloak 服务。

要添加环境变量,您必须在环境 block 下定义它们。

version: '3.7'

services:
  demo_db:
    container_name: demo-maria-db
    image: mariadb:10.5.8-focal
    restart: always
    ports:
      - 3306:3306
    volumes:
      - /apps/demo/db:/data/db
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    networks:
      demo_mesh:
        aliases:
          - demo-db

  demo_keycloak:
    container_name: demo-keycloak
    image: jboss/keycloak:10.0.1
    restart: always
    ports:
      - 8180:8080
    environment:
      PROXY_ADDRESS_FORWARDING: "true"
      DB_VENDOR: mariadb
      DB_ADDR: demo-db
      DB_DATABASE: keycloak
      DB_USER: user
      DB_PASSWORD: password
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
    depends_on:
      - demo_db
    networks:
      - demo_mesh

networks:
  demo_mesh: {}

关于docker - 如何将 Keycloak docker 镜像链接到 MariaDB docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67694447/

相关文章:

typescript - Keycloak.js 的类型定义文件

keycloak - KeyCloak 中多个客户端的唯一登录

linux - 为 ptrace_scope 禁用 AppArmor for Docker

docker - Gitlab CI - 注册表和 nginx

git - 使用GitVersion生成Docker镜像标签

mysql - 如何根据关联表确定计数?

mysql - 在 Windows 上运行 MySQL 或 MariaDB 服务器的最小文件 - (Portable MySQL/MariaDB)

MySQL 查询获取用户的所有好友,包括他们之间最后发送的消息

keycloak - 为什么 'id'在 key 斗篷中称为 'sub'?

google-app-engine - 托管 VM 添加到 PATH