Release version 1.0.3
This commit is contained in:
@@ -21,6 +21,44 @@
|
||||
6. readme.md 修改 eyeblue/tank:1.0.2
|
||||
eyeblue/tank:x.x.x
|
||||
|
||||
|
||||
## 新版本发布流程
|
||||
1.docker版本的发布。[参考](https://blog.eyeblue.cn/home/article/510f9316-9ca1-40fe-b1b3-5285505a527d)
|
||||
|
||||
```
|
||||
cd tank根目录
|
||||
# 停止旧版本,并删除旧版本
|
||||
docker container stop xxx
|
||||
docker container prune
|
||||
# 构建新版本 (最后的.不能少)
|
||||
docker build -t eyeblue/tank:x.x.x .
|
||||
# 本地测试
|
||||
docker-compose up -d
|
||||
# 没问题后,推送到远程
|
||||
docker push eyeblue/tank:x.x.x
|
||||
```
|
||||
|
||||
2.linux版本的发布。
|
||||
|
||||
a. 执行`src/tank/build/pack/build.sh`脚本
|
||||
b. 上传 tank-x.x.x.linux-amd64.tar.gz 到蓝眼云盘
|
||||
c. 在github上发布新版本。
|
||||
|
||||
3.windows版本发布
|
||||
|
||||
a. 执行`src/tank/build/pack/build.bat`脚本
|
||||
b. 上传 tank-x.x.x.windows-x86_64.zip 到蓝眼云盘
|
||||
c. 在github上发布新版本。
|
||||
|
||||
|
||||
|
||||
2018-04-12
|
||||
tank-1.0.3
|
||||
1. 添加了多文件同时上传的功能.
|
||||
2. 开发情况下有可能上传的文件路径没有权限,添加了更多提示.
|
||||
|
||||
|
||||
|
||||
2018-01-19
|
||||
tank-1.0.2
|
||||
1. 修复了下载时无法估算文件大小的bug,header头重添加了Content-Type. [#2](https://github.com/eyebluecn/tank/issues/2)
|
||||
|
||||
@@ -90,7 +90,7 @@ services:
|
||||
# 蓝眼云盘的镜像信息
|
||||
# 依赖 mysql:5.7 的镜像
|
||||
tank:
|
||||
image: eyeblue/tank:1.0.2
|
||||
image: eyeblue/tank:1.0.3
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
@@ -145,7 +145,7 @@ $ docker-compose stop
|
||||
$ docker container ls
|
||||
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
f5f64735fc53 eyeblue/tank:1.0.2 "/go/bin/tank" 20 minutes ago Up 13 seconds 0.0.0.0:6010->6010/tcp tank_tank_1
|
||||
f5f64735fc53 eyeblue/tank:1.0.3 "/go/bin/tank" 20 minutes ago Up 13 seconds 0.0.0.0:6010->6010/tcp tank_tank_1
|
||||
3a859cad3e7e mysql:5.7 "docker-entrypoint.s…" 20 minutes ago Up 14 seconds 3306/tcp tank_db_1
|
||||
|
||||
$ docker container stop f5
|
||||
|
||||
@@ -1 +1 @@
|
||||
<!DOCTYPE html><html><head><title>蓝眼云盘</title><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="user-scalable=no,width=device-width,initial-scale=1,maximum-scale=1"><meta name=msapplication-tap-highlight content=no><meta name=apple-mobile-web-app-capable content=yes><link rel="shortcut icon" href=/favicon.ico><link href=/static/css/app.e67bf66a3b64f1b45ec496faae765128.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.d1c45733b853efcc663e.js></script><script type=text/javascript src=/static/js/vendor.98c0538b97a360a7756e.js></script><script type=text/javascript src=/static/js/app.92616146a617842e8ca0.js></script></body></html>
|
||||
<!DOCTYPE html><html><head><title>蓝眼云盘</title><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="user-scalable=no,width=device-width,initial-scale=1,maximum-scale=1"><meta name=msapplication-tap-highlight content=no><meta name=apple-mobile-web-app-capable content=yes><link rel="shortcut icon" href=/favicon.ico><link href=/static/css/app.e67bf66a3b64f1b45ec496faae765128.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.14ebb9ba186cfb370de8.js></script><script type=text/javascript src=/static/js/vendor.98c0538b97a360a7756e.js></script><script type=text/javascript src=/static/js/app.e46a0879c96ff6b3a58e.js></script></body></html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,2 +1,2 @@
|
||||
!function(e){function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}var r=window.webpackJsonp;window.webpackJsonp=function(_,n,o){for(var c,a,i,u=0,p=[];u<_.length;u++)a=_[u],t[a]&&p.push(t[a][0]),t[a]=0;for(c in n)Object.prototype.hasOwnProperty.call(n,c)&&(e[c]=n[c]);for(r&&r(_,n,o);p.length;)p.shift()();if(o)for(u=0;u<o.length;u++)i=__webpack_require__(__webpack_require__.s=o[u]);return i};var _={},t={2:0};__webpack_require__.e=function(e){function onScriptComplete(){o.onerror=o.onload=null,clearTimeout(c);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var _=new Promise(function(_,n){r=t[e]=[_,n]});r[2]=_;var n=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,__webpack_require__.nc&&o.setAttribute("nonce",__webpack_require__.nc),o.src=__webpack_require__.p+"static/js/"+e+"."+{0:"98c0538b97a360a7756e",1:"92616146a617842e8ca0"}[e]+".js";var c=setTimeout(onScriptComplete,12e4);return o.onerror=o.onload=onScriptComplete,n.appendChild(o),_},__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(exports,e,r){__webpack_require__.o(exports,e)||Object.defineProperty(exports,e,{configurable:!1,enumerable:!0,get:r})},__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.p="/",__webpack_require__.oe=function(e){throw console.error(e),e}}([]);
|
||||
//# sourceMappingURL=manifest.d1c45733b853efcc663e.js.map
|
||||
!function(e){function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}var r=window.webpackJsonp;window.webpackJsonp=function(_,n,o){for(var c,a,i,u=0,p=[];u<_.length;u++)a=_[u],t[a]&&p.push(t[a][0]),t[a]=0;for(c in n)Object.prototype.hasOwnProperty.call(n,c)&&(e[c]=n[c]);for(r&&r(_,n,o);p.length;)p.shift()();if(o)for(u=0;u<o.length;u++)i=__webpack_require__(__webpack_require__.s=o[u]);return i};var _={},t={2:0};__webpack_require__.e=function(e){function onScriptComplete(){o.onerror=o.onload=null,clearTimeout(c);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var _=new Promise(function(_,n){r=t[e]=[_,n]});r[2]=_;var n=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,__webpack_require__.nc&&o.setAttribute("nonce",__webpack_require__.nc),o.src=__webpack_require__.p+"static/js/"+e+"."+{0:"98c0538b97a360a7756e",1:"e46a0879c96ff6b3a58e"}[e]+".js";var c=setTimeout(onScriptComplete,12e4);return o.onerror=o.onload=onScriptComplete,n.appendChild(o),_},__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(exports,e,r){__webpack_require__.o(exports,e)||Object.defineProperty(exports,e,{configurable:!1,enumerable:!0,get:r})},__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.p="/",__webpack_require__.oe=function(e){throw console.error(e),e}}([]);
|
||||
//# sourceMappingURL=manifest.14ebb9ba186cfb370de8.js.map
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -16,7 +16,7 @@ if "%GOPATH%"=="" (
|
||||
set PRE_DIR=%cd%
|
||||
|
||||
@rem version name
|
||||
set VERSION_NAME=tank-1.0.2
|
||||
set VERSION_NAME=tank-1.0.3
|
||||
|
||||
cd %GOPATH%
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
PRE_DIR=$(pwd)
|
||||
|
||||
VERSION_NAME=tank-1.0.2
|
||||
VERSION_NAME=tank-1.0.3
|
||||
FINAL_NAME=$VERSION_NAME.linux-amd64.tar.gz
|
||||
|
||||
cd $GOPATH
|
||||
|
||||
+9
-6
@@ -1,13 +1,16 @@
|
||||
#docker-compose版本,这里的3不要动
|
||||
version: "3"
|
||||
#docker-compose版本,这里的2不要动
|
||||
version: "2"
|
||||
services:
|
||||
|
||||
# 数据库的镜像信息
|
||||
# 使用mysql:5.7的镜像
|
||||
db:
|
||||
image: mysql:5.7
|
||||
ports:
|
||||
# 端口映射关系,宿主机端口:镜像端口
|
||||
- "13306:3306"
|
||||
volumes:
|
||||
# 数据库文件存放在宿主机的`~/data/mysql`位置,如果宿主机目录不存在,则会自动创建
|
||||
# 数据库文件存放在宿主机的`~/data/mysql`位置,如果宿主机目录不存在,则会自动创建。这里最好不要使用相对路径。
|
||||
- ~/data/mysql:/var/lib/mysql
|
||||
# 如果启动失败,则总是会重启。因为镜像有依赖的情况,不停重启可以保证依赖项启动成功后自己再运行
|
||||
restart: always
|
||||
@@ -21,7 +24,7 @@ services:
|
||||
# 蓝眼云盘的镜像信息
|
||||
# 依赖 mysql:5.7 的镜像
|
||||
tank:
|
||||
image: eyeblue/tank:1.0.2
|
||||
image: eyeblue/tank:1.0.3
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
@@ -47,7 +50,7 @@ services:
|
||||
# 超级管理员密码,作为登录密码
|
||||
TANK_ADMIN_PASSWORD: 123456
|
||||
volumes:
|
||||
# 日志文件存放在宿主机的`~/data/eyeblue/tank/log`位置,如果宿主机目录不存在,则会自动创建
|
||||
# 日志文件存放在宿主机的`~/data/eyeblue/tank/log`位置,如果宿主机目录不存在,则会自动创建。这里最好不要使用相对路径。
|
||||
- ~/data/eyeblue/tank/log:/data/log
|
||||
# 上传文件存放在宿主机的`~/data/eyeblue/tank/matter`位置,如果宿主机目录不存在,则会自动创建
|
||||
# 上传文件存放在宿主机的`~/data/eyeblue/tank/matter`位置,如果宿主机目录不存在,则会自动创建。这里最好不要使用相对路径。
|
||||
- ~/data/eyeblue/tank/matter:/data/matter
|
||||
+1
-1
@@ -20,7 +20,7 @@ const (
|
||||
TABLE_PREFIX = "tank10_"
|
||||
|
||||
//当前版本
|
||||
VERSION = "1.0.2"
|
||||
VERSION = "1.0.3"
|
||||
)
|
||||
|
||||
/*
|
||||
|
||||
+3
-4
@@ -58,7 +58,7 @@ func MakeDirAll(dirPath string) string {
|
||||
panic("判断文件是否存在时出错!")
|
||||
}
|
||||
if !exists {
|
||||
err = os.MkdirAll(dirPath, 0666)
|
||||
err = os.MkdirAll(dirPath, 0777)
|
||||
if err != nil {
|
||||
panic("创建文件夹时出错!")
|
||||
}
|
||||
@@ -67,7 +67,6 @@ func MakeDirAll(dirPath string) string {
|
||||
return dirPath
|
||||
}
|
||||
|
||||
|
||||
//获取配置文件存放的位置
|
||||
//例如:C:\Users\lishuang\AppData\Local\Temp/conf
|
||||
func GetConfPath() string {
|
||||
@@ -79,7 +78,7 @@ func GetConfPath() string {
|
||||
panic("判断日志文件夹是否存在时出错!")
|
||||
}
|
||||
if !exists {
|
||||
err = os.MkdirAll(filePath, 0666)
|
||||
err = os.MkdirAll(filePath, 0777)
|
||||
if err != nil {
|
||||
panic("创建日志文件夹时出错!")
|
||||
}
|
||||
@@ -103,7 +102,7 @@ func GetUserFilePath(username string) (string, string) {
|
||||
|
||||
exists, err := PathExists(absolutePath)
|
||||
if err != nil {
|
||||
panic("判断上传文件是否存在时出错!")
|
||||
panic("判断上传文件是否存在时出错!请检查文件夹 " + filePath + " 的访问权限。")
|
||||
}
|
||||
if !exists {
|
||||
err = os.MkdirAll(absolutePath, 0777)
|
||||
|
||||
Reference in New Issue
Block a user