diff --git a/docker/build/Dockerfile b/docker/build/Dockerfile index 775b1a1..906e8bc 100644 --- a/docker/build/Dockerfile +++ b/docker/build/Dockerfile @@ -20,6 +20,7 @@ COPY --from=staging_image /opt/clearml/ /opt/clearml/ COPY --chmod=744 docker/build/internal_files/final_image_preparation.sh /tmp/internal_files/ COPY docker/build/internal_files/clearml.conf.template /tmp/internal_files/ +COPY docker/build/internal_files/clearml_subpath.conf.template /tmp/internal_files/ RUN /bin/bash -c '/tmp/internal_files/final_image_preparation.sh' COPY --from=webapp /opt/open-webapp/build /usr/share/nginx/html diff --git a/docker/build/internal_files/clearml.conf.template b/docker/build/internal_files/clearml.conf.template index c1718eb..81a9aab 100644 --- a/docker/build/internal_files/clearml.conf.template +++ b/docker/build/internal_files/clearml.conf.template @@ -41,6 +41,7 @@ http { server_name _; root /usr/share/nginx/html; proxy_http_version 1.1; + client_max_body_size 0; # comppression gzip on; diff --git a/docker/build/internal_files/clearml_subpath.conf.template b/docker/build/internal_files/clearml_subpath.conf.template new file mode 100755 index 0000000..23b8119 --- /dev/null +++ b/docker/build/internal_files/clearml_subpath.conf.template @@ -0,0 +1,21 @@ +location /${CLEARML_SERVER_SUB_PATH} { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_pass http://localhost:80; + rewrite /${CLEARML_SERVER_SUB_PATH}/(.*) /$1 break; +} + +location /${CLEARML_SERVER_SUB_PATH}/api { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_pass http://localhost:80/api; + rewrite /${CLEARML_SERVER_SUB_PATH}/api/(.*) /api/$1 break; +} + +location /${CLEARML_SERVER_SUB_PATH}/files { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_pass http://localhost:80/files; + rewrite /${CLEARML_SERVER_SUB_PATH}/files/(.*) /files/$1 break; + rewrite /${CLEARML_SERVER_SUB_PATH}/files /files/ break; +} \ No newline at end of file diff --git a/docker/build/internal_files/entrypoint.sh b/docker/build/internal_files/entrypoint.sh index 060567f..b62f17c 100644 --- a/docker/build/internal_files/entrypoint.sh +++ b/docker/build/internal_files/entrypoint.sh @@ -48,9 +48,16 @@ EOF export NGINX_APISERVER_ADDR=${NGINX_APISERVER_ADDRESS:-http://apiserver:8008} export NGINX_FILESERVER_ADDR=${NGINX_FILESERVER_ADDRESS:-http://fileserver:8081} - envsubst '${NGINX_APISERVER_ADDR} ${NGINX_FILESERVER_ADDR}' < /etc/nginx/clearml.conf.template > /etc/nginx/nginx.conf + if [[ -n "${CLEARML_SERVER_SUB_PATH}" ]]; then + envsubst '${CLEARML_SERVER_SUB_PATH}' < /etc/nginx/clearml_subpath.conf.template > /etc/nginx/default.d/clearml_subpath.conf + cp /usr/share/nginx/html/env.js /usr/share/nginx/html/env.js.origin + envsubst '${CLEARML_SERVER_SUB_PATH}' < /usr/share/nginx/html/env.js.origin > /usr/share/nginx/html/env.js + cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.origin + sed 's/href="\/"/href="\/'${CLEARML_SERVER_SUB_PATH}'\/"/' /usr/share/nginx/html/index.html.origin > /usr/share/nginx/html/index.html + fi + #start the server /usr/sbin/nginx -g "daemon off;" diff --git a/docker/build/internal_files/final_image_preparation.sh b/docker/build/internal_files/final_image_preparation.sh index 47747eb..9f60cff 100644 --- a/docker/build/internal_files/final_image_preparation.sh +++ b/docker/build/internal_files/final_image_preparation.sh @@ -15,4 +15,5 @@ ln -s /dev/stdout /var/log/nginx/access.log ln -s /dev/stderr /var/log/nginx/error.log mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig mv /tmp/internal_files/clearml.conf.template /etc/nginx/clearml.conf.template +mv /tmp/internal_files/clearml_subpath.conf.template /etc/nginx/clearml_subpath.conf.template yum clean all \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 2f3ed58..915f743 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -108,6 +108,8 @@ services: command: - webserver container_name: clearml-webserver + # environment: + # CLEARML_SERVER_SUB_PATH : clearml-web # Allow Clearml to be served with a URL path prefix. image: allegroai/clearml:latest restart: unless-stopped depends_on: