You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2024/04/17 04:31:23 UTC
(airavata-custos) 03/03: configure nginx to dynamically resolve Keycloak host and nginx server using env variables
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 <la...@gmail.com>
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;