Skip to content

Commit

Permalink
docker/dev:
Browse files Browse the repository at this point in the history
* upgrade keycloak (quay.io/keycloak/keycloak:19.0.3-legacy)
* disable desktop container
* add squid container
* add chrome container
* retry restarting sshd
  • Loading branch information
takuya-isbs committed Apr 18, 2024
1 parent b713b54 commit 406d798
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 11 deletions.
4 changes: 4 additions & 0 deletions docker/dev/common/base.mk
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,10 @@ define up
mkdir -p $(ROOTDIR)/mnt
# readable for others
chmod 755 $(ROOTDIR)/mnt

mkdir -p $(ROOTDIR)/mnt/ChromeDownloads
chmod 700 $(ROOTDIR)/mnt/ChromeDownloads

$(COMPOSE) up -d --force-recreate
$(eval TMPFILE = $(shell mktemp))
# speed-up
Expand Down
32 changes: 28 additions & 4 deletions docker/dev/common/gen_docker_compose_conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,15 +148,37 @@ def __init__(self, name, ipaddr):
if use_keycloak:
print('''\
desktop:
build: common/oauth2/ubuntu
squid:
image: ubuntu/squid
networks:
gfarm_dev:
ports:
- "0.0.0.0:13128:3128"
volumes:
- ./mnt:/mnt:ro
- ./common/oauth2/allow-ssl-ports.conf:/etc/squid/conf.d/allow-ssl-ports.conf:ro
# http://<host IP address>:6901
# login: kasm_user/password
chrome:
image: kasmweb/chrome:1.15.0-rolling
shm_size: '512m'
volumes:
- ./mnt/ChromeDownloads:/home/kasm-user/Downloads:rw
networks:
gfarm_dev:
ports:
- "0.0.0.0:23389:3389"
- "0.0.0.0:6901:6901"
environment:
- VNC_PW=password
<<: *common
# desktop:
# build: common/oauth2/ubuntu
# volumes:
# - ./mnt:/mnt:ro
# networks:
# gfarm_dev:
# ports:
# - "0.0.0.0:23389:3389"
# <<: *common
jwt-server:
hostname: jwt-server{}
build: common/oauth2/apache
Expand Down Expand Up @@ -193,6 +215,8 @@ def __init__(self, name, ipaddr):
dockerfile: oauth2/keycloak/Dockerfile
volumes:
- ./mnt:/mnt:ro
- ./mnt/jwt-keycloak/jwt-keycloakcert.pem:/etc/x509/https/tls.crt
- ./mnt/jwt-keycloak/jwt-keycloakkey.pem:/etc/x509/https/tls.key
networks:
gfarm_dev:
environment:
Expand Down
31 changes: 27 additions & 4 deletions docker/dev/common/oauth2/README.ja
Original file line number Diff line number Diff line change
@@ -1,13 +1,38 @@
☆ jwt-server/jwt-logon/jwt-agent 利用方法

・コンテナ desktop:23389 に user/user でリモートデスクトップ接続できます。
接続後、ブラウザで jwt-server にアクセスすることが可能です。
・方法1: squid コンテナ経由 (推奨)
手元のブラウザに https プロキシを設定します。
ホスト名: ホストのIPアドレス
プロトコル: http
ポート: 13128
設定後、jwt-server にアクセスします。

SwitchyOmega のブラウザ拡張を使うと便利です。
New Profile でプロキシの設定を追加して Apply Changes し、
auto switch の Host wildcard に jwt-server と jwt-keycloak
の2個を * よりも上に追加し、
それぞれ対象の Profile を指定し、Apply Changes します。

・方法2: chrome コンテナ経由
手元のブラウザで http://ホストのIPアドレス:6901 にアクセスし、
kasm_user/password で接続します。
ブラウザの中で Google Chrome が動作します。
そこから jwt-server にアクセスします。
詳細: https://hub.docker.com/r/kasmweb/chrome

・方法3: desktop コンテナ経由 (無効化済み)
ホストのIPアドレス:23389 に user/user でリモートデスクトップ接続します。
接続後、その中のブラウザで jwt-server にアクセスすることが可能です。
# docker-compose.yml において、コメントアウトしてあります。

・デフォルト設定の場合、jwt-server の URL は下記になります。

https://jwt-server/

証明書の警告がでますが、2回警告を無視して続行して接続します。

・Keycloak には下記のユーザが追加されます。
いずれかのユーザ名でログインします。

user1/PASSWORD
user2/PASSWORD
Expand All @@ -24,5 +49,3 @@
ex2)
$ jwt-agent -s https://jwt-server -l user1
(jwt-serverより取得したパスフレーズを入力)


1 change: 1 addition & 0 deletions docker/dev/common/oauth2/allow-ssl-ports.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
acl SSL_ports port 443 8443
3 changes: 1 addition & 2 deletions docker/dev/common/oauth2/keycloak/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
FROM jboss/keycloak:15.0.2
FROM quay.io/keycloak/keycloak:19.0.3-legacy

USER root

RUN microdnf update -y && microdnf install -y jq && microdnf clean all

COPY oauth2/keycloak/standalone-ha.xml /opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
ADD oauth2/keycloak/setup.sh /setup.sh
ADD functions.sh /functions.sh
12 changes: 12 additions & 0 deletions docker/dev/common/oauth2/mariadb/initdb.d/001-create-tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,15 @@ CREATE TABLE `tokens` (
`iv` varchar(128) NOT NULL,
PRIMARY KEY (`user`,`audience`)
);

DROP TABLE IF EXISTS issues;

CREATE TABLE IF NOT EXISTS `issues` (
`id` int NOT NULL AUTO_INCREMENT,
`user` varchar(20) NOT NULL,
`date` timestamp NULL,
`ip_addr` varchar(256) DEFAULT NULL,
`hostname` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
);
5 changes: 4 additions & 1 deletion docker/dev/common/up.rc
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ for f in $(echo $MNT_SSH_HOST_KEY_DIR/ssh_host_*_key); do
sudo chmod 400 $SSH_HOST_KEY_DIR/$(basename "$f")
fi
done
sudo systemctl restart sshd
while ! sudo systemctl restart sshd; do
# may fail due to timeout
sleep 1
done

SAVE_KEYS_SCRIPT=/home/${GFDOCKER_PRIMARY_USER}/SAVE_SSH_HOST_KEYS.sh
cat << EOF > $SAVE_KEYS_SCRIPT
Expand Down

0 comments on commit 406d798

Please sign in to comment.