-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathdocker版readme.md
155 lines (111 loc) · 4.02 KB
/
docker版readme.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# docker版用法
## 一、准备工作
1. 上传群主编译好的 kkFileView-4.7.2.tar.gz 文件到 docker host,并解压
```
mkdir /opt/kkfileview
cd /opt/kkfileview
上传 kkFileView-4.7.2.tar.gz 文件到 /opt/kkfileview 目录
tar -zxvf kkFileView-4.7.2.tar.gz
```
2. 建立软连接,方便版本升级
```
ln -s kkFileView-4.7.2 kkFileView-latest
```
3. 新建启动脚本 vim /opt/kkfileview/kkFileView-latest/run.sh
```
java -Dfile.encoding=UTF-8 -Dspring.config.location=/opt/kkFileView/config/application.properties -jar /opt/kkFileView/bin/kkFileView-4.7.2.jar
```
4. 启动脚本可执行权限
```
chmod +0755 /opt/kkfileview/kkFileView-latest/run.sh
```
## 二、dockerfile 生成 image
1. 复制 dockerfile 到 docker host 主机,假定目录为:/opt/kkfileview
```
cd /opt/kkfileview
```
2. 从 dockerfile 构建 image,之后是漫长的等待
```
docker build -t kkfv:001 .
```
3. 从 image 运行 container
```
docker run --name kkfv \
-p 8012:8012 \
-v /opt/kkfileview/kkFileView-latest:/opt/kkFileView \
-itd --privileged=true \
--restart=always \
kkfv:001 /bin/bash /opt/kkFileView/run.sh
```
## 三、修改应用配置和 nginx 反代
1. 修改配置
打开 /opt/kkFileView-latest/conf 目录,下面有一个 application.properties 配置文件,有部分配置是可以在程序运行中变更的,其他的变更需要重新启动程序,例如,修改默认的路径 `/preview` 为 `/document` :
```
第 3 行:
server.servlet.context-path= /document
第 73 行:
base.url = ${KK_BASE_URL:default}
新的:
第 3 行:
server.servlet.context-path= ${KK_CONTEXT_PATH:/document}
第 73 行:
base.url = ${KK_BASE_URL:https://xx.xxxxxx.com/document}
第85行,视频广告关闭:
gg.media =
第 117 行,取消水印:
watermark.txt = ${WATERMARK_TXT:}
```
2. nginx 反代配置
```
server {
listen 80;
listen 443 ssl;
server_name xx.xxxxxx.com;
ssl_certificate /opt/ssl/xx.xxxxxx.com.crt;
ssl_certificate_key /opt/ssl/xx.xxxxxx.com.key;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
# 这个是 kkfileview 的反代
location /document {
proxy_pass http://127.0.0.1:8012;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## 四、应用升级
当群主发布的新的版本,比如:kkFileView-xxx.tar.gz,升级操作如下:
1. 上传群主编译好的 kkFileView-xxx.tar.gz 文件到 docker host 的 /opt/kkfileview 目录,并解压:
```
mkdir /opt/kkfileview
cd /opt/kkfileview
上传 kkFileView-xxx.tar.gz 文件到 /opt/kkfileview 目录
tar -zxvf kkFileView-xxx.tar.gz
```
2. 新版本解压后的目录是kkFileView-xxx,将原来的配置文件复制到新版本目录中
```
cp /opt/kkfileview/kkFileView-latest/conf/application.properties /opt/kkfileview/kkFileView-xxx/conf/application.properties
```
3. 重新建立软连接到 kkFileView-latest
```
rm -rf /opt/kkfileview/kkFileView-latest
重新建立新的软连接
ln -s kkFileView-xxx kkFileView-latest
```
4. 更新启动脚本 vim /opt/kkfileview/kkFileView-latest/run.sh
```
java -Dfile.encoding=UTF-8 -Dspring.config.location=/opt/kkFileView/config/application.properties -jar /opt/kkFileView/bin/kkFileView-xxx.jar
```
5. 启动脚本可执行权限
```
chmod +0755 /opt/kkfileview/kkFileView-latest/run.sh
```
6. 重启 container 即可
```
docker container restart kkfv
```