diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d451ff1 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dc4247a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:lts-alpine +WORKDIR /build +# 设置Node-Sass的镜像地址 +RUN npm config set sass_binary_site https://repo.huaweicloud.com/node-sass +# 设置npm镜像 +RUN npm config set registry https://repo.huaweicloud.com/repository/npm/ +COPY package.json /build/package.json +RUN npm install +COPY ./ /build +RUN npm run build + +FROM nginx +RUN mkdir /app +COPY --from=0 /build/dist /app +COPY --from=0 /build/nginx.conf /etc/nginx/nginx.conf +EXPOSE 80 \ No newline at end of file diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..2a09a53 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,84 @@ +user nginx; +worker_processes 1; +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; +events { + worker_connections 1024; +} +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + + server { + listen 80; + server_name localhost; + location / { + root /app; + index index.html; + try_files $uri $uri/ /index.html; + } + location /api/ + { + proxy_pass http://midway:7001/; + 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 REMOTE-HOST $remote_addr; + + #缓存相关配置 + #proxy_cache cache_one; + #proxy_cache_key $host$request_uri$is_args$args; + #proxy_cache_valid 200 304 301 302 1h; + + #持久化连接相关配置 + proxy_connect_timeout 3000s; + proxy_read_timeout 86400s; + proxy_send_timeout 3000s; + #proxy_http_version 1.1; + #proxy_set_header Upgrade $http_upgrade; + #proxy_set_header Connection "upgrade"; + + add_header X-Cache $upstream_cache_status; + + #expires 12h; + } + + location /adminer/ + { + proxy_pass http://adminer:8080/; + 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 REMOTE-HOST $remote_addr; + + #缓存相关配置 + #proxy_cache cache_one; + #proxy_cache_key $host$request_uri$is_args$args; + #proxy_cache_valid 200 304 301 302 1h; + + #持久化连接相关配置 + proxy_connect_timeout 3000s; + proxy_read_timeout 86400s; + proxy_send_timeout 3000s; + #proxy_http_version 1.1; + #proxy_set_header Upgrade $http_upgrade; + #proxy_set_header Connection "upgrade"; + + add_header X-Cache $upstream_cache_status; + + #expires 12h; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file