configure nginx to dynamically resolve Keycloak host and nginx server using env variables
diff --git a/custos-utilities/ide-integration/Dockerfile b/custos-utilities/ide-integration/Dockerfile
index 72aa51e..10b4882 100644
--- a/custos-utilities/ide-integration/Dockerfile
+++ b/custos-utilities/ide-integration/Dockerfile
@@ -1,5 +1,9 @@
FROM nginx:stable-alpine
-COPY src/main/containers/nginx.conf /etc/nginx/conf.d/default.conf
+COPY src/main/containers/nginx.conf /etc/nginx/conf.d/default.conf.template
COPY src/main/containers/certificate_mul.pem /etc/nginx/certificate.pem
COPY src/main/containers/key_mul.pem /etc/nginx/key.pem
+COPY src/main/containers/init/nginx/entrypoint.sh /usr/local/bin/entrypoint.sh
+
+RUN chmod +x /usr/local/bin/entrypoint.sh
+ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
EXPOSE 443
\ No newline at end of file
diff --git a/custos-utilities/ide-integration/src/main/containers/docker-compose.yml b/custos-utilities/ide-integration/src/main/containers/docker-compose.yml
index 1f8291d..2a4a41f 100644
--- a/custos-utilities/ide-integration/src/main/containers/docker-compose.yml
+++ b/custos-utilities/ide-integration/src/main/containers/docker-compose.yml
@@ -2,6 +2,7 @@
services:
keycloak:
image: quay.io/keycloak/keycloak:9.0.2
+ container_name: keycloak
ports:
- "8080:8080"
environment:
@@ -20,6 +21,12 @@
image: apachecustos/keycloak-nginx:latest
ports:
- "443:443"
+ environment:
+ KEYCLOAK_HOST: keycloak
+ NGINX_SERVER_NAME: host.docker.internal
+ depends_on:
+ - keycloak
+
vault:
image: vault:1.7.0
container_name: vault
diff --git a/custos-utilities/ide-integration/src/main/containers/init/nginx/entrypoint.sh b/custos-utilities/ide-integration/src/main/containers/init/nginx/entrypoint.sh
new file mode 100755
index 0000000..fc93502
--- /dev/null
+++ b/custos-utilities/ide-integration/src/main/containers/init/nginx/entrypoint.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+envsubst '$KEYCLOAK_HOST,$NGINX_SERVER_NAME' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf
+nginx -g 'daemon off;'
diff --git a/custos-utilities/ide-integration/src/main/containers/nginx.conf b/custos-utilities/ide-integration/src/main/containers/nginx.conf
index 4747e5e..9d9af25 100644
--- a/custos-utilities/ide-integration/src/main/containers/nginx.conf
+++ b/custos-utilities/ide-integration/src/main/containers/nginx.conf
@@ -1,12 +1,12 @@
upstream keycloak {
- server host.docker.internal:8080;
+ server ${KEYCLOAK_HOST}:8080;
}
server {
listen 443 ssl;
# The host name to respond to
- server_name host.docker.internal;
+ server_name ${NGINX_SERVER_NAME};
ssl_certificate /etc/nginx/certificate.pem;
ssl_certificate_key /etc/nginx/key.pem;
ssl_prefer_server_ciphers on;