Browse Source

Merge pull request #1 from flipped-aurora/master

拉取master
main
ipanghu 3 years ago
committed by GitHub
parent
commit
bfd7bd680e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 119
      .dockerignore
  2. 41
      Dockerfile
  3. 8
      docker-compose.yaml
  4. 4
      docker/docker-start.sh
  5. 56
      docker/etc/nginx/nginx.conf.tpl
  6. 21
      dockerfile_server
  7. 9
      server/Dockerfile
  8. 4
      server/config.yaml
  9. 0
      web/.docker-compose/nginx/conf.d/my.conf
  10. 1
      web/.dockerignore
  11. 3
      web/Dockerfile
  12. 50400
      web/package-lock.json
  13. 2
      web/package.json
  14. 104
      web/src/core/element_lazy.js
  15. 6
      web/src/core/gin-vue-admin.js
  16. 2
      web/src/main.js

119
.dockerignore

@ -1,119 +0,0 @@
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.pnp.*
**/node_modules

41
Dockerfile

@ -1,41 +0,0 @@
FROM golang:alpine as builder
RUN apk add --update --no-cache yarn make g++
RUN yarn global add cross-env node-sass
ENV GOPROXY=https://goproxy.cn,https://goproxy.io,direct \
GO111MODULE=on \
CGO_ENABLED=1
WORKDIR /go/src/gin-vue-admin
RUN go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
COPY server/ ./
RUN go env && go list && go build -v -a -ldflags "-extldflags \"-static\" " -o gvadmin .
WORKDIR /web
COPY web/ ./
RUN yarn install && yarn run build
FROM nginx:alpine
LABEL MAINTAINER="rikugun"
RUN apk add --no-cache gettext tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
date && \
apk del tzdata
COPY docker/etc/nginx/nginx.conf.tpl /etc/nginx/nginx.conf.tpl
WORKDIR /app
#copy web
COPY --from=builder /web/dist/ /var/www/
#copy go app
COPY --from=builder /go/src/gin-vue-admin/gvadmin ./
COPY --from=builder /go/src/gin-vue-admin/db.db ./
COPY --from=builder /go/src/gin-vue-admin/config.yaml ./
COPY --from=builder /go/src/gin-vue-admin/resource ./resource
COPY docker/docker-start.sh ./
ENV API_SERVER="http://localhost:8888/"
EXPOSE 80
ENTRYPOINT ["./docker-start.sh"]

8
docker-compose.yaml

@ -10,8 +10,8 @@ networks:
services: services:
web: web:
build: build:
context: ./
dockerfile: ./dockerfile_web
context: ./web
dockerfile: ./Dockerfile
container_name: gva-web container_name: gva-web
restart: always restart: always
ports: ports:
@ -25,8 +25,8 @@ services:
server: server:
build: build:
context: ./
dockerfile: ./dockerfile_server
context: ./server
dockerfile: ./Dockerfile
container_name: gva-server container_name: gva-server
restart: always restart: always
ports: ports:

4
docker/docker-start.sh

@ -1,4 +0,0 @@
#!/bin/sh
envsubst '$API_SERVER' < /etc/nginx/nginx.conf.tpl > /etc/nginx/nginx.conf
env nginx
./gvadmin

56
docker/etc/nginx/nginx.conf.tpl

@ -1,56 +0,0 @@
daemon on;
worker_processes 50;
#error_log /dev/stdout warn;
error_log /var/log/nginx/error.log error;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# See http://licson.net/post/optimizing-nginx-for-large-file-delivery/ for more detail
# This optimizes the server for HLS fragment delivery
sendfile off;
#tcp_nopush on;
keepalive_timeout 65;
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 /dev/stdout combined;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 10m;
server {
listen 80;
# Uncomment these lines to enable SSL.
# Update the ssl paths with your own certificate and private key.
# listen 443 ssl;
# ssl_certificate /opt/certs/example.com.crt;
# ssl_certificate_key /opt/certs/example.com.key;
location / {
root /var/www;
try_files $uri $uri/ /index.html;
index index.html;
}
location /v1/ {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_pass ${API_SERVER} ;
}
}
}

21
dockerfile_server

@ -1,21 +0,0 @@
FROM golang:alpine
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.io,direct
WORKDIR /go/src/gin-vue-admin
COPY server/ ./
RUN go env && go mod tidy && go build -o server .
FROM alpine:latest
LABEL MAINTAINER="SliverHorn@sliver_horn@qq.com"
WORKDIR /go/src/gin-vue-admin
COPY --from=0 /go/src/gin-vue-admin/server ./
COPY --from=0 /go/src/gin-vue-admin/config.docker.yaml ./
COPY --from=0 /go/src/gin-vue-admin/resource ./resource
EXPOSE 8888
ENTRYPOINT ./server -c config.docker.yaml

9
server/Dockerfile

@ -2,19 +2,18 @@ FROM golang:alpine
ENV GO111MODULE=on ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.io,direct ENV GOPROXY=https://goproxy.io,direct
WORKDIR /go/src/gin-vue-admin WORKDIR /go/src/gin-vue-admin
COPY . . COPY . .
RUN go env && go build -o server . RUN go env && go build -o server .
FROM alpine:latest FROM alpine:latest
LABEL MAINTAINER="SliverHorn@sliver_horn@qq.com" LABEL MAINTAINER="SliverHorn@sliver_horn@qq.com"
WORKDIR /go/src/gin-vue-admin WORKDIR /go/src/gin-vue-admin
COPY --from=0 /go/src/gin-vue-admin/server ./
COPY --from=0 /go/src/gin-vue-admin/config.yaml ./
COPY --from=0 /go/src/gin-vue-admin/resource ./resource
COPY --from=0 /go/src/gin-vue-admin ./
EXPOSE 8888 EXPOSE 8888
ENTRYPOINT ./server
ENTRYPOINT ./server -c config.docker.yaml

4
server/config.yaml

@ -43,7 +43,7 @@ system:
env: 'public' # Change to "develop" to skip authentication for development mode env: 'public' # Change to "develop" to skip authentication for development mode
addr: 8888 addr: 8888
db-type: 'mysql' db-type: 'mysql'
oss-type: 'local' # 控制oss选择走本还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
oss-type: 'local' # 控制oss选择走本还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
use-multipoint: false use-multipoint: false
# captcha configuration # captcha configuration
@ -85,7 +85,7 @@ autocode:
web-form: /view web-form: /view
web-table: /view web-table: /view
# qiniu configuration (请自行申请七牛对应的 公钥 私钥 bucket 和 域名地址)
# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址)
qiniu: qiniu:
zone: 'ZoneHuaDong' zone: 'ZoneHuaDong'
bucket: '' bucket: ''

0
.docker-compose/nginx/conf.d/my.conf → web/.docker-compose/nginx/conf.d/my.conf

1
web/.dockerignore

@ -0,0 +1 @@
node_modules/

3
dockerfile_web → web/Dockerfile

@ -1,7 +1,7 @@
FROM node:12.16.1 FROM node:12.16.1
WORKDIR /gva_web/ WORKDIR /gva_web/
COPY web/ .
COPY . .
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
RUN cnpm install || npm install RUN cnpm install || npm install
@ -15,4 +15,3 @@ COPY --from=0 /gva_web/dist /usr/share/nginx/html
RUN cat /etc/nginx/nginx.conf RUN cat /etc/nginx/nginx.conf
RUN cat /etc/nginx/conf.d/my.conf RUN cat /etc/nginx/conf.d/my.conf
RUN ls -al /usr/share/nginx/html RUN ls -al /usr/share/nginx/html
CMD ls -al /usr/share/nginx/html

50400
web/package-lock.json
File diff suppressed because it is too large
View File

2
web/package.json

@ -21,6 +21,7 @@
"path": "^0.12.7", "path": "^0.12.7",
"qs": "^6.8.0", "qs": "^6.8.0",
"quill": "^1.3.7", "quill": "^1.3.7",
"sass": "^1.34.1",
"screenfull": "^5.0.2", "screenfull": "^5.0.2",
"script-ext-html-webpack-plugin": "^2.1.4", "script-ext-html-webpack-plugin": "^2.1.4",
"spark-md5": "^3.0.1", "spark-md5": "^3.0.1",
@ -43,7 +44,6 @@
"core-js": "^3.3.2", "core-js": "^3.3.2",
"eslint": "^6.7.2", "eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^6.2.2",
"node-sass": "^4.12.0",
"numericjs": "^1.2.6", "numericjs": "^1.2.6",
"raw-loader": "^3.1.0", "raw-loader": "^3.1.0",
"sass-loader": "^8.0.0", "sass-loader": "^8.0.0",

104
web/src/core/element_lazy.js

@ -8,57 +8,57 @@
import Vue from 'vue' import Vue from 'vue'
// 按需引入element // 按需引入element
import { import {
Button,
Select,
Dialog,
Form,
Input,
FormItem,
Option,
Loading,
Message,
Container,
Card,
Dropdown,
DropdownMenu,
DropdownItem,
Row,
Col,
Menu,
Submenu,
MenuItem,
Aside,
Main,
Badge,
Header,
Tabs,
Breadcrumb,
BreadcrumbItem,
Scrollbar,
Avatar,
TabPane,
Divider,
Table,
TableColumn,
Cascader,
Checkbox,
CheckboxGroup,
Pagination,
Tag,
Drawer,
Tree,
Popover,
Switch,
Collapse,
CollapseItem,
Tooltip,
DatePicker,
InputNumber,
Steps,
Upload,
Progress,
MessageBox,
Image
Button,
Select,
Dialog,
Form,
Input,
FormItem,
Option,
Loading,
Message,
Container,
Card,
Dropdown,
DropdownMenu,
DropdownItem,
Row,
Col,
Menu,
Submenu,
MenuItem,
Aside,
Main,
Badge,
Header,
Tabs,
Breadcrumb,
BreadcrumbItem,
Scrollbar,
Avatar,
TabPane,
Divider,
Table,
TableColumn,
Cascader,
Checkbox,
CheckboxGroup,
Pagination,
Tag,
Drawer,
Tree,
Popover,
Switch,
Collapse,
CollapseItem,
Tooltip,
DatePicker,
InputNumber,
Steps,
Upload,
Progress,
MessageBox,
Image
} from 'element-ui' } from 'element-ui'
Vue.use(Button) Vue.use(Button)
@ -116,4 +116,4 @@ Vue.prototype.$message = Message
Vue.prototype.$confirm = MessageBox.confirm Vue.prototype.$confirm = MessageBox.confirm
Dialog.props.closeOnClickModal.default = false Dialog.props.closeOnClickModal.default = false
console.warn('[GIN-VUE-ADMIN]--按需加载elementUI成功')
console.warn('[GIN-VUE-ADMIN]--按需加载elementUI成功,如出现element-ui组件无法使用问题,请至/src/core/element_lazy 下引入对应组件即可')

6
web/src/core/gin-vue-admin.js

@ -3,7 +3,7 @@
* *
* */ * */
import Vue from 'vue' import Vue from 'vue'
import './element_lazy'
import './element_lazy' // 按需加载element
import uploader from 'vue-simple-uploader' import uploader from 'vue-simple-uploader'
import APlayer from '@moefe/vue-aplayer' import APlayer from '@moefe/vue-aplayer'
// time line css // time line css
@ -12,8 +12,8 @@ import '../../node_modules/timeline-vuejs/dist/timeline-vuejs.css'
import Bus from '@/utils/bus' import Bus from '@/utils/bus'
Vue.use(Bus) Vue.use(Bus)
Vue.use(APlayer, { Vue.use(APlayer, {
defaultCover: 'https://github.com/u3u.png',
productionTip: true
defaultCover: 'https://github.com/u3u.png',
productionTip: true
}) })
Vue.use(uploader) Vue.use(uploader)

2
web/src/main.js

@ -1,6 +1,6 @@
import Vue from 'vue' import Vue from 'vue'
import App from './App.vue' import App from './App.vue'
// 引入gin-vue-admin前端组件
// 引入gin-vue-admin前端初始化相关内容
import './core/gin-vue-admin' import './core/gin-vue-admin'
// 引入封装的router // 引入封装的router
import router from '@/router/index' import router from '@/router/index'

Loading…
Cancel
Save