-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yml
More file actions
180 lines (177 loc) · 5.02 KB
/
compose.yml
File metadata and controls
180 lines (177 loc) · 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
services:
dind:
build:
context: ./dind
args:
USER: ${USER:-user} # Your User Name
USER_ID: ${USER_ID:-1000} # Your User ID
GROUP_ID: ${GROUP_ID:-1000} # Your GROUP ID
container_name: dind
image: dind
volumes:
- type: volume
source: docker-socket
target: /var/run
- type: volume
source: docker-data
target: /var/lib/docker
- type: volume
source: home-dir
target: /home/${USER:-user}
privileged: true
restart: always
ssh:
build:
context: ./ssh
args:
USER: ${USER:-user} # Your User Name
USER_ID: ${USER_ID:-1000} # Your User ID
GROUP_ID: ${GROUP_ID:-1000} # Your GROUP ID
KUBE_VERSION: ${KUBE_VERSION:-v1.28} # K8s Version
container_name: ssh
ports:
- 8022:22
image: ssh
volumes:
- type: volume
source: docker-socket
target: /var/run/dind
read_only: true
- type: volume
source: home-dir
target: /home/${USER:-user}
- type: volume
source: kube-config
target: /home/${USER:-user}/.kube
- type: volume
source: helm-data
target: /home/${USER:-user}/.config/helm
- type: volume
source: ssh-config-dir
target: /etc/ssh
- type: volume
source: ssh-dir
target: /home/${USER:-user}/.ssh
- type: volume
source: vscode-data
target: /home/${USER:-user}/.vscode
- type: volume
source: vscode-server-data
target: /home/${USER:-user}/.vscode-server
restart: always
vscode:
build:
context: ./vscode
args:
USER: ${USER:-user} # Your User Name
USER_ID: ${USER_ID:-1000} # Your User ID
GROUP_ID: ${GROUP_ID:-1000} # Your GROUP ID
KUBE_VERSION: ${KUBE_VERSION:-v1.28} # K8s Version
container_name: vscode
# ports:
# - 8000:8000
image: vscode
volumes:
- type: volume
source: docker-socket
target: /var/run/dind
read_only: true
- type: volume
source: home-dir
target: /home/${USER:-user}
- type: volume
source: kube-config
target: /home/${USER:-user}/.kube
- type: volume
source: helm-data
target: /home/${USER:-user}/.config/helm
- type: volume
source: vscode-data
target: /home/${USER:-user}/.vscode
- type: volume
source: vscode-server-data
target: /home/${USER:-user}/.vscode-server
restart: always
keycloak:
container_name: keycloak
image: quay.io/keycloak/keycloak:22.0
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
KC_DB: mariadb
KC_DB_URL_HOST: keycloak-db
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: keycloak
KEYCLOAK_ADMIN: keycloak
KEYCLOAK_ADMIN_PASSWORD: keycloak
ports:
- 8080:8080
command: ["start-dev"]
depends_on:
- keycloak-db
restart: always
keycloak-db:
container_name: keycloak-db
image: mariadb:11
environment:
MYSQL_DATABASE: keycloak
MYSQL_USER: keycloak
MYSQL_PASSWORD: keycloak
MYSQL_ROOT_PASSWORD: keycloak
volumes:
- type: volume
source: keycloak-data
target: /var/lib/mysql
restart: always
oauth2-proxy:
container_name: oauth2-proxy
image: quay.io/oauth2-proxy/oauth2-proxy:v7.5.1
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- 4180:4180
depends_on:
- keycloak
environment:
OAUTH2_PROXY_PROVIDER: oidc
OAUTH2_PROXY_CLIENT_ID: vscode
OAUTH2_PROXY_CLIENT_SECRET: ag2mvcAWzh0cEeAZ8M7cZaedhWbfVsxN # From Keycloak Client Credentials
OAUTH2_PROXY_REDIRECT_URL: http://host.docker.internal:4180/oauth2/callback
OAUTH2_PROXY_OIDC_ISSUER_URL: http://host.docker.internal:8080/realms/default
OAUTH2_PROXY_COOKIE_SECRET: a1Z9zRNzVhPYxibeSu7ZrOs_OWeS2_1Y65d9BXsYqiw= # openssl rand -base64 32 | tr -- '+/' '-_'
OAUTH2_PROXY_COOKIE_SECURE: "false"
OAUTH2_PROXY_COOKIE_NAME: "oauth2_proxy"
OAUTH2_PROXY_EMAIL_DOMAINS: "*"
OAUTH2_PROXY_HTTP_ADDRESS: 0.0.0.0:4180
OAUTH2_PROXY_UPSTREAMS: http://vscode:8000/
OAUTH2_PROXY_PASS_AUTHORIZATION_HEADER: "true"
OAUTH2_PROXY_SCOPE: openid email profile
OAUTH2_PROXY_PASS_ACCESS_TOKEN: "true"
OAUTH2_PROXY_PASS_USER_HEADERS: "true"
OAUTH2_PROXY_SKIP_PROVIDER_BUTTON: "true"
OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL: "true"
restart: always
volumes:
docker-socket:
name: docker-socket
driver_opts:
type: tmpfs
device: tmpfs
home-dir:
name: home-dir
kube-config:
name: kube-config
helm-data:
name: helm-data
docker-data:
name: docker-data
ssh-config-dir:
name: ssh-config-dir
ssh-dir:
name: ssh-dir
vscode-data:
name: vscode-data
vscode-server-data:
name: vscode-server-data
keycloak-data:
name: keycloak-data