如果需要提前將已有keycloak的realm導出並通過docker-compose導入,用下圖的方式導出,將導出的文件命名爲realms.json
新建文件夾並創建文件: docker-compose.yml
version: "3"
services:
keycloak:
image: jboss/keycloak:7.0.0
ports:
- "8080:8080"
volumes:
- "./imports:/Users/lucia/workspace/docker-compose/imports/"
environment:
- "KEYCLOAK_USER=admin"
- "KEYCLOAK_PASSWORD=admin"
- "DB_VENDOR=postgres"
- "DB_ADDR=postgres"
- "DB_DATABASE=postgres"
- "DB_USER=postgres"
- "DB_PASSWORD=123456"
- "PROXY_ADDRESS_FORWARDING=true"
command:
- "-b 0.0.0.0 -Dkeycloak.import=/Users/lucia/workspace/docker-compose/imports/realms.json"
depends_on:
- postgres
postgres:
image: postgres
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD:123456"
如果不需要導入realm,可以直接用下面的方式:
version: "3"
services:
keycloak:
image: jboss/keycloak:7.0.0
ports:
- "8080:8080"
environment:
- "KEYCLOAK_USER=admin"
- "KEYCLOAK_PASSWORD=admin"
- "DB_VENDOR=postgres"
- "DB_ADDR=postgres"
- "DB_DATABASE=postgres"
- "DB_USER=postgres"
- "DB_PASSWORD=123456"
- "PROXY_ADDRESS_FORWARDING=true"
depends_on:
- postgres
postgres:
image: postgres
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD:123456"
後臺啓動: docker-compose up -d
前臺啓動:docker-compose up
停止:docker-compose stop
查看docker啓動中的容器:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
71ae958e3ffd postgres "docker-entrypoint.s…" 21 minutes ago Up 21 minutes 0.0.0.0:5432->5432/tcp docker-compose_postgres_1
4f63a236e573 jboss/keycloak "/opt/jboss/tools/do…" 21 minutes ago Up 21 minutes 0.0.0.0:8080->8080/tcp, 8443/tcp docker-compose_auth_1
刪除容器:
docker rm <容器CONTAINER id>
進入容器內部:
$ docker exec -it 71ae958e3ffd bash (進入postgresql的容器內部)
root@71ae958e3ffd:/# psql postgres -U postgres
psql (12.0 (Debian 12.0-1.pgdg100+1))
Type "help" for help.
postgres=# \c postgres
You are now connected to database "postgres" as user "postgres".
打開網頁,用戶名密碼就是我們在docker-compose.yml 文件裏配置的 admin
KEYCLOAK_USER=admin
KEYCLOAK_PASSWORD=admin