This is an automated email from the ASF dual-hosted git repository.

lahirujayathilake pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-custos.git

commit 66e3f90f4d73f6eb24421ffe4e803609cd592ef4
Author: lahiruj <[email protected]>
AuthorDate: Wed Feb 7 17:23:31 2024 -0500

    configure nginx to dynamically resolve Keycloak host and nginx server using 
env variables
---
 custos-utilities/ide-integration/Dockerfile                        | 6 +++++-
 .../ide-integration/src/main/containers/docker-compose.yml         | 7 +++++++
 .../ide-integration/src/main/containers/init/nginx/entrypoint.sh   | 3 +++
 custos-utilities/ide-integration/src/main/containers/nginx.conf    | 4 ++--
 4 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/custos-utilities/ide-integration/Dockerfile 
b/custos-utilities/ide-integration/Dockerfile
index 72aa51ec3..10b488285 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 1f8291de1..2a4a41f1f 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 @@ version: "3.3"
 services:
     keycloak:
       image: quay.io/keycloak/keycloak:9.0.2
+      container_name: keycloak
       ports:
         - "8080:8080"
       environment:
@@ -20,6 +21,12 @@ services:
       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 000000000..fc935026d
--- /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 4747e5ed6..9d9af2537 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;

Reply via email to