Skip to content

Commit 59a138f

Browse files
committed
优化docker-compose的前端项目不依赖于Gin,使用nginx
1 parent 42fe781 commit 59a138f

File tree

8 files changed

+157
-91
lines changed

8 files changed

+157
-91
lines changed

.docker-compose/nginx/conf.d/my.conf

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
server {
2+
listen 8000;
3+
server_name localhost;
4+
5+
#charset koi8-r;
6+
#access_log logs/host.access.log main;
7+
8+
location / {
9+
root /usr/share/nginx/html;
10+
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
11+
try_files $uri $uri/ /index.html;
12+
}
13+
14+
location /api {
15+
proxy_set_header Host $http_host;
16+
proxy_set_header X-Real-IP $remote_addr;
17+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
18+
proxy_set_header X-Forwarded-Proto $scheme;
19+
rewrite ^/api/(.*)$ /$1 break; #重写
20+
proxy_pass http://172.25.0.4:8888; # 设置代理服务器的协议和地址
21+
}
22+
23+
location /api/swagger/index.html {
24+
proxy_pass http://127.0.0.1:8888/swagger/index.html;
25+
}
26+
}

.docker-compose/shell/server-handle.sh

+9-43
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,5 @@
11
#! /bin/bash
22

3-
rm -f ./core/server.go
4-
# 生成server.go文件, 添加Router.Static("/admin", "./resource/dist")这个代码
5-
touch ./core/server.go
6-
filename="./core/server.go"
7-
cat>"${filename}"<<EOF
8-
package core
9-
10-
import (
11-
"fmt"
12-
"gin-vue-admin/global"
13-
"gin-vue-admin/initialize"
14-
"go.uber.org/zap"
15-
"time"
16-
)
17-
18-
type server interface {
19-
ListenAndServe() error
20-
}
21-
22-
func RunWindowsServer() {
23-
if global.GVA_CONFIG.System.UseMultipoint {
24-
// 初始化redis服务
25-
initialize.Redis()
26-
}
27-
Router := initialize.Routers()
28-
Router.Static("/form-generator", "./resource/page")
29-
Router.Static("/admin", "./resource/dist")
30-
31-
//InstallPlugs(Router)
32-
// end 插件描述
33-
34-
address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr)
35-
s := initServer(address, Router)
36-
// 保证文本顺序输出
37-
// In order to ensure that the text order output can be deleted
38-
time.Sleep(10 * time.Microsecond)
39-
global.GVA_LOG.Debug("server run success on ", zap.String("address", address))
40-
41-
fmt.Printf("欢迎使用 Gin-Vue-Admin默认自动化文档地址:http://127.0.0.1%s/swagger/index.html\n 默认前端文件运行地址:http://127.0.0.1:8888/admin\n", address)
42-
global.GVA_LOG.Error(s.ListenAndServe().Error())
43-
}
44-
EOF
45-
463
rm -f ./config.yaml
474
# 生成config.yaml文件, 用于docker-compose的使用
485
touch ./config.yaml
@@ -123,5 +80,14 @@ zap:
12380
encode_level: 'LowercaseColorLevelEncoder'
12481
stacktrace_key: 'stacktrace'
12582
log_in_console: true
83+
84+
email:
85+
email_from: '[email protected]'
86+
email_nick_name: 'test'
87+
email_secret: 'xxx'
88+
email_to: '[email protected]'
89+
email_host: 'smtp.163.com'
90+
email_port: 465
91+
email_isSSL: true
12692
EOF
12793

.docker-compose/shell/web-handle.sh

-10
This file was deleted.

README.md

+76-4
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,83 @@ Gin-vue-admin 的成长离不开大家的支持,如果你愿意为 gin-vue-adm
109109
docker-compose up -d
110110
```
111111

112-
- web项目预览 [http://127.0.0.1:8888/admin](http://127.0.0.1:8888/admin)
112+
- web项目预览 [http://127.0.0.1:8000](http://127.0.0.1:8000)
113113

114114
- swagger文档 [http://127.0.0.1:8888/swagger/index.html](http://127.0.0.1:8888/swagger/index.html)
115115

116-
116+
- 打开http://127.0.0.1:8000,验证码无法显示的话
117+
118+
- ```shell
119+
# 终端输入以下命令查找
120+
docker network inspect gin-vue-admin_default
121+
122+
[
123+
{
124+
"Name": "gin-vue-admin_default",
125+
"Id": "dd65598bd3fcce9916a88161f26268f4e08a6d5bd1c619d07e69abc93c69bba3",
126+
"Created": "2020-09-10T10:36:37.868984015Z",
127+
"Scope": "local",
128+
"Driver": "bridge",
129+
"EnableIPv6": false,
130+
"IPAM": {
131+
"Driver": "default",
132+
"Options": null,
133+
"Config": [
134+
{
135+
"Subnet": "172.29.0.0/16",
136+
"Gateway": "172.29.0.1"
137+
}
138+
]
139+
},
140+
"Internal": false,
141+
"Attachable": true,
142+
"Ingress": false,
143+
"ConfigFrom": {
144+
"Network": ""
145+
},
146+
"ConfigOnly": false,
147+
"Containers": {
148+
"1e246725c7ab689608c9f451c57a892e070fd63ec971d1749ede8dfbdaf704e1": {
149+
"Name": "gva-redis",
150+
"EndpointID": "d457e4babd5676e289bdf4f4c5ef0ce30c2acd87d437bfd7ea8809467a9304ef",
151+
"MacAddress": "02:42:ac:1d:00:02",
152+
"IPv4Address": "172.29.0.2/16",
153+
"IPv6Address": ""
154+
},
155+
"7228d1c37654173e78a5ae82047b3a3b771feeea855dcc1e88e8e29e262bf789": {
156+
"Name": "gva-web",
157+
"EndpointID": "ffc9c29b9aa1e4c7a56b9e8060fff455295813298df585df51b802548c477969",
158+
"MacAddress": "02:42:ac:1d:00:05",
159+
"IPv4Address": "172.29.0.5/16",
160+
"IPv6Address": ""
161+
},
162+
"99b6063801049d659a329cada5ad0d418c02a9956794b9bcbc07327fff3a1e58": {
163+
"Name": "gva-server",
164+
"EndpointID": "9a04629997d8b9aa6d75cc396d5dbb54bc5d239017a1010bacb53f73e2d46199",
165+
"MacAddress": "02:42:ac:1d:00:04",
166+
"IPv4Address": "172.29.0.4/16",
167+
"IPv6Address": ""
168+
},
169+
"af60bee9ddca855beaf6bd6c6612516970f1336215af622d560f982276d9e4c6": {
170+
"Name": "gva-mysql",
171+
"EndpointID": "998a67b2b2ca9a12c916e97bf30f6b5879ee610c52d5ab329253192acd686cd8",
172+
"MacAddress": "02:42:ac:1d:00:03",
173+
"IPv4Address": "172.29.0.3/16",
174+
"IPv6Address": ""
175+
}
176+
},
177+
"Options": {},
178+
"Labels": {
179+
"com.docker.compose.network": "default",
180+
"com.docker.compose.project": "gin-vue-admin",
181+
"com.docker.compose.version": "1.26.2"
182+
}
183+
}
184+
]
185+
# Name为"gva-server"的IPv4Address,把172.29.0.3放到.docker-compose/nginx/conf.d/my.conf的第20行
186+
```
187+
188+
-
117189

118190
### 2.1 web端
119191

@@ -270,7 +342,7 @@ swag init
270342
271343
(1)环境搭建
272344
> Bilibili:https://www.bilibili.com/video/BV1Fg4y187Bw/ (v1.0版本视频,v2.0操作相同目录不同)
273-
345+
274346
(2)模板使用
275347
> Bilibili:https://www.bilibili.com/video/BV16K4y1r7BD/ (v1.0版本视频,v2.0操作相同目录不同)
276348
@@ -286,7 +358,7 @@ swag init
286358
287359
### QQ交流群:622360840
288360
| QQ 群(满) |
289-
| :---: |
361+
| :---: |
290362
| <img src="http://qmplusimg.henrongyi.top/qq.jpg" width="180"/> |
291363
292364
### 微信交流群

docker-compose.yaml

+17-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
11
version: "3.8"
22

33
services:
4+
web:
5+
build:
6+
context: ./
7+
dockerfile: ./Dockerfile
8+
container_name: gva-web
9+
restart: always
10+
ports:
11+
- '8000:8000'
12+
links:
13+
- server
14+
depends_on:
15+
- server
16+
command: ['nginx-debug', '-g', 'daemon off;']
17+
418
server:
519
build:
620
context: ./
7-
dockerfile: ./dockerfile_server
8-
container_name: gva-server # 容器名
21+
dockerfile: ./DockerfileServer
22+
container_name: gva-server
923
restart: always
1024
ports:
1125
- '8888:8888'
@@ -19,7 +33,7 @@ services:
1933
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
2034
restart: always
2135
ports:
22-
- "13306:3306" # host物理直接映射端口为6606
36+
- "13306:3306" # host物理直接映射端口为13306
2337
environment:
2438
MYSQL_DATABASE: 'qmPlus' # 初始化启动时要创建的数据库的名称
2539
MYSQL_ROOT_PASSWORD: 'Aa@6447985' # root管理员用户密码

docker/docker-start.sh

100755100644
File mode changed.

dockerfile_server

+9-31
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
FROM node:12.16.1 as gva-web
2-
3-
WORKDIR /gva_web/
4-
COPY web/ .
5-
6-
RUN cat .env.production
7-
COPY .docker-compose/shell/web-handle.sh .
8-
RUN ls -al
9-
RUN sh ./web-handle.sh
10-
RUN cat .env.production
11-
RUN rm -f web-handle.sh
12-
13-
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
14-
RUN cnpm install || npm install
15-
RUN npm run build
16-
17-
FROM golang:alpine as gva-server
1+
FROM golang:alpine
182

193
ENV GO111MODULE=on
204
ENV GOPROXY=https://goproxy.io,direct
@@ -30,25 +14,19 @@ RUN rm -f server-handle.sh
3014
RUN cat ./core/server.go
3115
RUN cat ./config.yaml
3216

33-
RUN go env && go list && go build -o gva-server .
34-
17+
RUN go env && go build -o server .
3518

36-
FROM nginx:alpine
37-
LABEL MAINTAINER="SliverHorn"
3819

39-
WORKDIR gva/
40-
41-
# copy web
42-
COPY --from=gva-web /gva_web/dist ./resource/dist
43-
# copy server
44-
COPY --from=gva-server /go/src/gin-vue-admin/gva-server ./
45-
COPY --from=gva-server /go/src/gin-vue-admin/config.yaml ./
46-
COPY --from=gva-server /go/src/gin-vue-admin/resource ./resource
20+
FROM alpine:latest
21+
LABEL MAINTAINER="SliverHorn@[email protected]"
4722

23+
WORKDIR /go/src/gin-vue-admin
4824

49-
EXPOSE 8888
25+
COPY --from=0 /go/src/gin-vue-admin/server ./
26+
COPY --from=0 /go/src/gin-vue-admin/config.yaml ./
27+
COPY --from=0 /go/src/gin-vue-admin/resource ./resource
5028

51-
ENTRYPOINT ./gva-server
29+
ENTRYPOINT ./server
5230

5331
# 根据Dockerfile生成Docker镜像
5432

dockerfile_web

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
FROM node:12.16.1
2+
3+
WORKDIR /gva_web/
4+
COPY web/ .
5+
6+
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
7+
RUN cnpm install || npm install
8+
RUN npm run build
9+
10+
FROM nginx:alpine
11+
LABEL MAINTAINER="SliverHorn@[email protected]"
12+
13+
COPY .docker-compose/nginx/conf.d/my.conf /etc/nginx/conf.d/my.conf
14+
COPY --from=0 /gva_web/dist /usr/share/nginx/html
15+
RUN cat /etc/nginx/nginx.conf
16+
RUN cat /etc/nginx/conf.d/my.conf
17+
RUN ls -al /usr/share/nginx/html
18+
CMD ls -al /usr/share/nginx/html
19+
20+
CMD ['nginx-debug', '-g', 'daemon off;']

0 commit comments

Comments
 (0)