Tôi tạo ra nhỏ Wildfly Swarm ứng dụng với KeyCloak máy chủ sử dụng WildFly Swarm Project Generator tôi thêm một số mã, xây dựng và bắt đầu jar chất béo của tôi sử dụng:Chạy Wildfly Swarm với KeyCloak trên hình Docker
java -jar -Dswarm.port.offset=100 login-service-swarm.jar
Sau khi ứng dụng nhìn chằm chằm tôi tạo ra lĩnh vực mới được thêm người dùng vv Sau đó, tôi nhận thấy keycloak đã tạo 3 tệp trong thư mục đích của tôi. Những file đó:
- keycloak.h2.db
- keycloak.lock.db
- keycloak.trace.db
Sau đó, tôi quyết định tạo ra hình ảnh Docker và chạy nó trong Docker địa phương môi trường. Vì vậy, tôi đã tạo ra tập tin Docker:
FROM java:openjdk-8-jdk
ADD login-service-swarm.jar /opt/login-service-swarm.jar
ADD keycloak.h2.db /opt/keycloak.h2.db
ADD keycloak.lock.db /opt/keycloak.lock.db
ADD keycloak.trace.db /opt/keycloak.trace.db
EXPOSE 8180
ENTRYPOINT ["java", "-jar", "-Dswarm.port.offset=100", "/opt/login-service-swarm.jar"]
hình ảnh xây dựng sử dụng:
docker build -f Dockerfile -t login-service-swarm-v1 .
Và hình ảnh có thể nhìn thấy trong danh sách hình ảnh Docker tôi:
C:\Work\Java\login-service\docker>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
login-service-swarm-v1 latest 710cddc59623 About a minute ago 790 MB
<none> <none> 100c0ee60f25 3 hours ago 779 MB
demo latest 03d12d49ba5e 4 hours ago 760 MB
java openjdk-8-jdk d23bdf5b1b1b 5 months ago 643 MB
Vì vậy, tôi bắt đầu nó bằng cách sử:
docker run -p 8180:8180 login-service-swarm-v1
Và nó nhìn chằm chằm ok nhưng khi tôi đi để localhost: 8180/auth và cố gắng đăng nhập tôi nhận được tên người dùng sai và mật khẩu tin nhắn vì vậy tôi không thể đăng nhập vào keycloak. Vì vậy, tôi tự hỏi tại sao điều này? Bởi vì tôi manuayl bao gồm các tệp cơ sở dữ liệu keycloak trong hình ảnh docker và nếu tôi chạy các lệnh sau, bạn có thể thấy tất cả các tệp có ở đó như mong đợi.
PS C:\> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8bb4bdb3945e login-service-swarm-v1 "java -jar -Dswarm..." 2 minutes ago Up 2 minutes 0.0.0.0:8180->8180/tcp blissful_knuth
PS C:\> docker exec -it 8bb4bdb3945e bash
[email protected]:/# ls
bin boot dev etc home keycloak.h2.db keycloak.lock.db keycloak.trace.db lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[email protected]:/# cd opt
[email protected]:/opt# ls
keycloak.h2.db keycloak.lock.db keycloak.trace.db login-service-swarm.jar
Vì vậy, nơi bắt?
Dịch vụ đăng nhập-dịch vụ có nghĩa là Máy chủ Keycloak hoặc một dịch vụ được bảo vệ bởi Keycloak? Điều đó không hoàn toàn rõ ràng với tôi tại thời điểm này – Ken
@Ken: đăng nhập-dịch vụ-swarm là một Máy chủ Keycloak – Kiki