Sfoglia il codice sorgente

build(ci): add docker config

Lind 4 anni fa
parent
commit
623e3ec1de

+ 1 - 1
.github/workflows/ci.yml

@@ -16,7 +16,7 @@ jobs:
         with:
           node-version: ${{ matrix.node_version }}
       - run: echo ${{github.ref}}
-      - run: npm install
+      - run: npm install --force
       - run: yarn run lint
       - run: yarn run tsc
       - run: yarn run build

+ 6 - 0
docker/Dockerfile

@@ -0,0 +1,6 @@
+FROM nginx
+ADD nginx.conf /etc/nginx/conf.d/default.conf
+ADD docker-entrypoint.sh /docker-entrypoint.sh
+COPY dist /usr/share/nginx/html
+CMD ["sh","/docker-entrypoint.sh"]
+#ADD oauth2 /usr/share/nginx/html/oauth2

+ 3 - 0
docker/build.sh

@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+docker build -t registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-pro:2.0.0-SNAPSHOT .
+docker push registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-pro:2.0.0-SNAPSHOT

+ 4 - 4
docker/docker-compose.yml

@@ -1,17 +1,17 @@
 version: '3.5'
 
 services:
-  ant-design-pro_build:
+  jetlinks_build:
     build: ../
-    container_name: 'ant-design-pro_build'
+    container_name: 'jetlinks_build'
     volumes:
       - dist:/usr/src/app/dist
 
-  ant-design-pro_web:
+  jetlinks_web:
     image: nginx
     ports:
       - 80:80
-    container_name: 'ant-design-pro_web'
+    container_name: 'jetlinks_web'
     restart: unless-stopped
     volumes:
       - dist:/usr/share/nginx/html:ro

+ 15 - 0
docker/docker-entrypoint.sh

@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+API_BASE_PATH=$API_BASE_PATH;
+NAMESERVERS=$(cat /etc/resolv.conf | grep "nameserver" | awk '{print $2}' | tr '\n' ' ')
+if [ -z "$API_BASE_PATH" ]; then
+    API_BASE_PATH="http://jetlinks:8844/";
+fi
+
+apiUrl="proxy_pass  $API_BASE_PATH\$1;"
+resolver="resolver $NAMESERVERS ipv6=off;"
+
+sed -i '11c '"$resolver"'' /etc/nginx/conf.d/default.conf
+sed -i '20c '"$apiUrl"'' /etc/nginx/conf.d/default.conf
+
+nginx -g "daemon off;"

+ 24 - 5
docker/nginx.conf

@@ -8,14 +8,33 @@ server {
     gzip_vary on;
     gzip_disable "MSIE [1-6]\.";
 
+    resolver $NAMESERVERS ipv6=off;
     root /usr/share/nginx/html;
     include /etc/nginx/mime.types;
+
     location / {
+        index  index.html;
         try_files $uri $uri/ /index.html;
     }
-    location /api {
-        proxy_pass https://proapi.azurewebsites.net;
-        proxy_set_header   X-Forwarded-Proto $scheme;
-        proxy_set_header   X-Real-IP         $remote_addr;
-    }
+
+    location ^~/jetlinks/ {
+         if ($request_uri ~* ^/jetlinks/(.*)$) {
+             proxy_pass http://host.docker.internal:8840/$1;
+         }
+         #proxy_pass http://host.docker.internal:8840/;
+         proxy_set_header X-Forwarded-Proto $scheme;
+         proxy_set_header Host $host:$server_port;
+         proxy_set_header X-Real-IP  $remote_addr;
+         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+         proxy_http_version 1.1;
+         proxy_set_header Upgrade $http_upgrade;
+         proxy_set_header Connection "upgrade";
+         proxy_connect_timeout   1;
+         proxy_buffering off;
+         chunked_transfer_encoding off;
+         proxy_cache off;
+         proxy_send_timeout      30m;
+         proxy_read_timeout      30m;
+         client_max_body_size    500m;
+     }
 }