use*_*967 35 jboss docker keycloak docker-compose
我无法使用 ansible 和 docker-compose 启动 keycloak 容器。我收到错误:用户名“admin”的用户已添加到“/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json”
我有 3 个可靠的工作:
创建网络:
- name: Create a internal network
docker_network:
name: internal
Run Code Online (Sandbox Code Playgroud)
设置 postgres:
- name: "Install Postgres"
docker_compose:
project_name: posgressdb
restarted: true
pull: yes
definition:
version: '2'
services:
postgres:
image: postgres:12.1
container_name: postgres
restart: always
env_file:
- /etc/app/db.env
networks:
- internal
volumes:
- postgres-data:/var/lib/postgresql/data
- /etc/app/createdb.sh:/docker-entrypoint-initdb.d/init-app-db.sh
ports:
- "5432:5432"
volumes:
postgres-data:
networks:
internal:
external:
name: internal
Run Code Online (Sandbox Code Playgroud)
创建密钥斗篷容器:
- name: Install keycloak
docker_compose:
project_name: appauth
restarted: true
pull: yes
definition:
version: '2'
services:
keycloak:
image: jboss/keycloak:8.0.1
container_name: keycloak
restart: always
environment:
- DB_VENDOR=POSTGRES
- DB_ADDR=postgres
- DB_PORT=5432
- DB_SCHEMA=public
- DB_DATABASE=keycloak
- DB_USER=keycloak
- DB_PASSWORD=keycloak
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=admin
networks:
- internal
networks:
internal:
external:
name: internal
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我会收到这个错误?
编辑
如果我将 keycloak 降级到版本 7,它会正常启动!
Tho*_*mas 53
只是为了澄清其他答案。我遇到过同样的问题。对我有帮助的是:
注释掉两个相关的行
version: "3"
services:
keycloak:
image: quay.io/keycloak/keycloak:latest
environment:
# KEYCLOAK_USER: admin
# KEYCLOAK_PASSWORD: pass
...
Run Code Online (Sandbox Code Playgroud)启动所有容器;
注释掉上面的两行
version: "3"
services:
keycloak:
image: quay.io/keycloak/keycloak:latest
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: pass
...
Run Code Online (Sandbox Code Playgroud)这一次(以及随后的时间)它起作用了。Keycloak 正在运行,管理员用户已注册并按预期工作。
Zme*_*mey 10
当 Keycloak 在启动过程中被中断时会发生这种情况。在此之后,尝试添加管理员用户的命令开始失败。在 Keycloak 7 中,这不是致命的,但在 8.0.1 中添加了这一行来/opt/jboss/tools/docker-entrypoint.sh
中止整个启动脚本:
set -eou pipefail
Run Code Online (Sandbox Code Playgroud)
相关问题:https : //issues.redhat.com/browse/KEYCLOAK-12896
mbr*_*eat 10
注释掉这些KEYCLOAK_USER
作品的原因是它强制重新创建容器。同样可以通过以下方式完成:
docker rm -f keycloak
docker compose up keycloak
Run Code Online (Sandbox Code Playgroud)
根据我的发现,设置此默认用户的最佳方法不是通过环境变量添加它,而是通过以下命令:
docker exec <CONTAINER> /opt/jboss/keycloak/bin/add-user-keycloak.sh -u <USERNAME> -p <PASSWORD>
Run Code Online (Sandbox Code Playgroud)
根据官方文档。
小智 6
我遇到过同样的问题。在 docker-compose 中注释掉 KEYCLOAK_USER 环境变量并更新堆栈后,容器再次启动。
docker_compose:
project_name: appauth
restarted: true
pull: yes
definition:
version: '2'
services:
keycloak:
image: jboss/keycloak:8.0.1
container_name: keycloak
restart: always
environment:
- DB_VENDOR=POSTGRES
- DB_ADDR=postgres
- DB_PORT=5432
- DB_SCHEMA=public
- DB_DATABASE=keycloak
- DB_USER=keycloak
- DB_PASSWORD=keycloak
#- KEYCLOAK_USER=admin
#- KEYCLOAK_PASSWORD=admin
networks:
- internal
networks:
internal:
external:
name: internal
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14649 次 |
最近记录: |