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;
