Parcourir la source

upgrade to nginx for static container, to provide CORS headers

Harlan Iverson il y a 7 ans
Parent
commit
7746443d06

+ 6 - 6
tinydatacenter.com/Dockerfile.static

@@ -1,11 +1,11 @@
-FROM alpine
+FROM tobi312/rpi-nginx
 
-RUN apk update && apk upgrade && apk add python
+WORKDIR /var/www/html
+ADD app/resources/public /var/www/html
 
-WORKDIR /tmp/http
-ADD app/resources/public /tmp/http
+ADD nginx.conf /etc/nginx/conf.d/nginx.conf
 
-VOLUME /tmp/http/media
+VOLUME /var/www/html/media
 EXPOSE 9090
 
-CMD ["python", "-m", "SimpleHTTPServer", "9090"]
+#CMD ["python", "-m", "SimpleHTTPServer", "9090"]

+ 38 - 0
tinydatacenter.com/nginx.conf

@@ -0,0 +1,38 @@
+    server {
+        listen      9090;
+        listen [::]:9090 ipv6only=on;
+
+
+        set $cors '';
+        if ($http_origin ~ '^https?\:\/\/(localhost|\d+\.\d+\.\d+.\d+|(www\.)?ispooge\.com|(www\.)?harlanji\.com|(www\.)?tinydatacenter\.com)\/?') {
+                set $cors 'C';
+        }
+
+        set $cors_opts '';
+        if ($request_method = 'OPTIONS') {
+          set $cors_opts "${cors}O";
+        }
+
+
+
+        location / {
+
+
+          if ($cors = 'C') {
+                add_header 'Access-Control-Allow-Origin' "$http_origin" always;
+                add_header 'Access-Control-Allow-Credentials' 'true' always;
+                add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
+                add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
+                # required to be able to read Authorization header in frontend
+                #add_header 'Access-Control-Expose-Headers' 'Authorization' always;
+           }
+          if ($cors_opts = 'CO') {
+                  add_header 'Access-Control-Max-Age' 60;
+                  add_header 'Content-Type' 'text/plain charset=UTF-8';
+                  add_header 'Content-Length' 0;
+                  return 204;
+          }
+
+          root /var/www/html;
+        }
+    }

+ 1 - 1
tinydatacenter.com/scripts/env.sh

@@ -6,7 +6,7 @@ NAME=tinydatacenter-build
 DEV_PORT=23000
 
 NAME_STATIC=tinydatacenter-static
-IMAGE_STATIC=docker-registry.local:5000/tinydatacenter.com/tinydatacenter-static:8
+IMAGE_STATIC=docker-registry.local:5000/tinydatacenter.com/tinydatacenter-static:9
 PORT_STATIC=23080
 
 MEDIA=$HOME/p/tdc-media