From f42459eb9e35e4a9437ff3eddddfd66183abe9e4 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 10 May 2019 00:09:04 -0400 Subject: [PATCH] Trying to setup local CORS; better docker dir naming --- docker/Nginx-Orthanc/config/nginx.conf | 48 +++++++++++++++++++ .../config/orthanc.json | 0 .../Nginx-Orthanc/docker-compose-orthanc.yml | 39 --------------- docker/Nginx-Orthanc/docker-compose.yml | 26 ++++++++++ .../volumes/orthanc-db/.githold | 0 docker/Orthanc/docker-compose.yml | 15 ------ package.json | 4 +- ...cal_orthanc.js => docker_nginx-orthanc.js} | 2 - 8 files changed, 76 insertions(+), 58 deletions(-) create mode 100644 docker/Nginx-Orthanc/config/nginx.conf rename docker/{Orthanc => Nginx-Orthanc}/config/orthanc.json (100%) delete mode 100644 docker/Nginx-Orthanc/docker-compose-orthanc.yml create mode 100644 docker/Nginx-Orthanc/docker-compose.yml rename docker/{Orthanc => Nginx-Orthanc}/volumes/orthanc-db/.githold (100%) delete mode 100644 docker/Orthanc/docker-compose.yml rename public/config/{local_orthanc.js => docker_nginx-orthanc.js} (94%) diff --git a/docker/Nginx-Orthanc/config/nginx.conf b/docker/Nginx-Orthanc/config/nginx.conf new file mode 100644 index 000000000..c38ee5813 --- /dev/null +++ b/docker/Nginx-Orthanc/config/nginx.conf @@ -0,0 +1,48 @@ +worker_processes 1; + +events { worker_connections 1024; } + +http { + + upstream orthanc-server { + server orthanc:8042; + } + + server { + listen [::]:80 default_server; + listen 80; + + # CORS Magic + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow_Credentials' 'true'; + add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH'; + + location / { + + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow_Credentials' 'true'; + add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + + proxy_pass http://orthanc:8042; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + # CORS Magic + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow_Credentials' 'true'; + add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH'; + } + } +} diff --git a/docker/Orthanc/config/orthanc.json b/docker/Nginx-Orthanc/config/orthanc.json similarity index 100% rename from docker/Orthanc/config/orthanc.json rename to docker/Nginx-Orthanc/config/orthanc.json diff --git a/docker/Nginx-Orthanc/docker-compose-orthanc.yml b/docker/Nginx-Orthanc/docker-compose-orthanc.yml deleted file mode 100644 index 5b4edea0e..000000000 --- a/docker/Nginx-Orthanc/docker-compose-orthanc.yml +++ /dev/null @@ -1,39 +0,0 @@ -# docker-compose: -# https://docs.docker.com/compose/overview/ - -version: '3.5' - -services: - orthanc: - container_name: orthanc - image: jodogne/orthanc-plugins - volumes: - - ../sampledata:/sampledata - ports: - - '4242:4242' - - '8042:8042' - restart: always - viewer: - container_name: ohif-viewer - build: - # Up to the root directory - context: ../ - # Use our dockerfile to build the viewer - dockerfile: dockerfile - ports: - - '80:80' - depends_on: - - orthanc - environment: - - NODE_ENV=production - - REACT_APP_CONFIG=config/local_orthanc.js - restart: always - volumes: - - ../config/local_orthanc.js:/usr/share/nginx/html/servers.js - proxy: - image: nginx - restart: always - ports: - - 8899:80 - volumes: - - ./nginx-proxy/conf/nginx.conf:/etc/nginx/nginx.conf:ro diff --git a/docker/Nginx-Orthanc/docker-compose.yml b/docker/Nginx-Orthanc/docker-compose.yml new file mode 100644 index 000000000..26e797514 --- /dev/null +++ b/docker/Nginx-Orthanc/docker-compose.yml @@ -0,0 +1,26 @@ +version: '3.5' + +services: + proxy: + image: nginx:1.15-alpine + ports: + - 8899:80 + volumes: + - ./config/nginx.conf:/etc/nginx/nginx.conf:ro + restart: unless-stopped + + # LINK: https://hub.docker.com/r/jodogne/orthanc-plugins/ + # TODO: Update to use Postgres + # https://github.com/mrts/docker-postgresql-multiple-databases + orthanc: + image: jodogne/orthanc-plugins:1.5.6 + hostname: orthanc + volumes: + # Config + - ./config/orthanc.json:/etc/orthanc/orthanc.json:ro + # Persist data + - ./volumes/orthanc-db/:/var/lib/orthanc/db/ + # ports: + # - '4242:4242' # DICOM + # - '8042:8042' # Web + restart: unless-stopped diff --git a/docker/Orthanc/volumes/orthanc-db/.githold b/docker/Nginx-Orthanc/volumes/orthanc-db/.githold similarity index 100% rename from docker/Orthanc/volumes/orthanc-db/.githold rename to docker/Nginx-Orthanc/volumes/orthanc-db/.githold diff --git a/docker/Orthanc/docker-compose.yml b/docker/Orthanc/docker-compose.yml deleted file mode 100644 index d11e1dfe9..000000000 --- a/docker/Orthanc/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -# LINK: https://hub.docker.com/r/jodogne/orthanc-plugins/ -# TODO: Update to use Postgres -# https://github.com/mrts/docker-postgresql-multiple-databases -orthanc: - image: jodogne/orthanc-plugins:1.5.6 - hostname: orthanc - volumes: - # Config - - ./config/orthanc.json:/etc/orthanc/orthanc.json:ro - # Persist data - - ./volumes/orthanc-db/:/var/lib/orthanc/db/ - ports: - - '4242:4242' - - '8042:8042' - restart: unless-stopped diff --git a/package.json b/package.json index b7111965b..7ad8a672d 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,8 @@ "start": "yarn run dev", "predeploy": "cd example && npm install && yarn run build:package", "preBuild": "yarn run version && yarn run copy:webworkers", - "orthanc:up": "docker-compose -f docker/Orthanc/docker-compose.yml up", - "orthanc:down": "docker-compose -f docker/Orthanc/docker-compose.yml down", + "orthanc:up": "docker-compose -f docker/Nginx-Orthanc/docker-compose.yml up", + "dev:orthanc": "yarn run preBuild && cross-env PORT=5000 REACT_APP_CONFIG=config/docker_nginx-orthanc.js react-scripts start", "version": "node -p -e \"'export default \\'' + require('./package.json').version + '\\';'\" > src/version.js", "copy:webworkers": "cpx 'node_modules/cornerstone-wado-image-loader/dist/*.min.js*' public" }, diff --git a/public/config/local_orthanc.js b/public/config/docker_nginx-orthanc.js similarity index 94% rename from public/config/local_orthanc.js rename to public/config/docker_nginx-orthanc.js index 27554ed49..15a97f76c 100644 --- a/public/config/local_orthanc.js +++ b/public/config/docker_nginx-orthanc.js @@ -1,7 +1,5 @@ window.config = { - // default: '/' routerBasename: '/', - // default: '' relativeWebWorkerScriptsPath: '', servers: { dicomWeb: [