我的应用程序有一个 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/