Skip to content

Commit e866eb1

Browse files
committed
提升Go版本, 添加Linux编译脚本
1 parent c090e6c commit e866eb1

File tree

10 files changed

+91
-27
lines changed

10 files changed

+91
-27
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ _testmain.go
2222
*.exe
2323
*.exe~
2424
mindoc
25+
mindoc_linux_amd64
26+
mindoc_linux_musl_amd64
2527
database
2628
*.test
2729
*.prof

.travis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ script:
2525
- rm conf/app.conf
2626

2727
before_deploy:
28-
- go mod tidy -v && GOARCH=amd64 GOOS=linux go build -o mindoc_linux_amd64 -ldflags="-w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'conf.GO_VERSION=`go version`'"
28+
- go mod tidy -v && GOARCH=amd64 GOOS=linux go build -v -o mindoc_linux_amd64 -ldflags="-w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'conf.GO_VERSION=`go version`'"
2929
# remove files
30-
- rm appveyor.yml docker-compose.yml Dockerfile .travis.yml .gitattributes .gitignore go.mod go.sum main.go README.md simsun.ttc start.sh
30+
- rm appveyor.yml docker-compose.yml Dockerfile .travis.yml .gitattributes .gitignore go.mod go.sum main.go README.md simsun.ttc start.sh sync_host.sh build_amd64.sh build_musl_amd64.sh
3131
# remove dirs
32-
- rm -rf cache commands controllers converter .git .github graphics mail models routers utils
32+
- rm -rf cache commands controllers converter .git .github graphics mail models routers utils runtime
3333
- ls -alh
3434
- cp conf/app.conf.example conf/app.conf
3535
- zip -r mindoc_linux_amd64.zip conf static uploads views lib mindoc_linux_amd64 favicon.ico LICENSE.md

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM amd64/golang:1.13 AS build
1+
FROM amd64/golang:1.18.1 AS build
22

33
ARG TAG=0.0.1
44

@@ -16,7 +16,7 @@ WORKDIR /go/src/github.com/mindoc-org/mindoc
1616
# 编译
1717
RUN go env
1818
RUN go mod tidy -v
19-
RUN go build -o mindoc_linux_amd64 -ldflags "-w -s -X 'main.VERSION=$TAG' -X 'main.BUILD_TIME=`date`' -X 'main.GO_VERSION=`go version`'"
19+
RUN go build -v -o mindoc_linux_amd64 -ldflags "-w -s -X 'main.VERSION=$TAG' -X 'main.BUILD_TIME=`date`' -X 'main.GO_VERSION=`go version`'"
2020
RUN cp conf/app.conf.example conf/app.conf
2121
# 清理不需要的文件
2222
RUN rm appveyor.yml docker-compose.yml Dockerfile .travis.yml .gitattributes .gitignore go.mod go.sum main.go README.md simsun.ttc start.sh conf/*.go

README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ MinDoc 的前身是 [SmartWiki](https://github.com/lifei6671/SmartWiki) 文档
4141

4242
对于没有Golang使用经验的用户,可以从 [https://github.com/mindoc-org/mindoc/releases](https://github.com/mindoc-org/mindoc/releases) 这里下载编译完的程序。
4343

44-
如果有Golang开发经验,建议通过编译安装,要求golang版本不小于1.18.1(需支持`CGO``go mod`)。
45-
> 注意: CentOS7上GLibC版本低,需要源码编译, 编译好的二进制文件无法运行
44+
如果有Golang开发经验,建议通过编译安装,要求golang版本不小于1.15.1(需支持`CGO``go mod``import _ "time/tzdata"`)(推荐Go版本为1.18.1)。
45+
> 注意: CentOS7上GLibC版本低,常规编译版本不能使用。需要自行源码编译,或使用使用musl编译版本
4646
4747
## 常规编译
4848
```bash
4949
# 克隆源码
5050
git clone https://github.com/mindoc-org/mindoc.git
5151
# go包安装
52-
go mod tidy
52+
go mod tidy -v
5353
# 编译(sqlite需要CGO支持)
54-
go build -ldflags "-w" -o mindoc.exe main.go
54+
go build -ldflags "-w" -o mindoc main.go
5555
# 数据库初始化(此步骤执行之前,需配置`conf/app.conf`)
5656
./mindoc install
5757
# 执行
@@ -88,14 +88,13 @@ export GOOS=linux
8888
export CC=/usr/local/musl/bin/musl-gcc
8989
# 设置版本
9090
export TRAVIS_TAG=temp-musl-v`date +%y%m%d`
91-
go build -o mindoc_linux_musl_amd64 --ldflags="-linkmode external -extldflags '-static' -w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'github.com/mindoc-org/mindoc/conf.GO_VERSION=`go version`'"
91+
go build -v -o mindoc_linux_musl_amd64 -ldflags="-linkmode external -extldflags '-static' -w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'github.com/mindoc-org/mindoc/conf.GO_VERSION=`go version`'"
9292
# 验证
93-
./mindoc_linux_amd64 version
93+
./mindoc_linux_musl_amd64 version
9494
```
9595

9696

97-
```bash
98-
97+
```ini
9998
#邮件配置-示例
10099
#是否启用邮件
101100
enable_mail=true
@@ -129,17 +128,17 @@ HTTP_PORT 程序监听的端口号
129128
MINDOC_ENABLE_EXPORT 开启导出(默认为false)
130129
```
131130

132-
### 举个栗子-当前(公开)镜像(信息页面: https://cr.console.aliyun.com/images/cn-hangzhou/mindoc-org/mindoc/detail , 需要登录阿里云账号才可访问列表)
131+
#### 举个栗子-当前(公开)镜像(信息页面: https://cr.console.aliyun.com/images/cn-hangzhou/mindoc-org/mindoc/detail , 需要登录阿里云账号才可访问列表)
133132
##### Windows
134133
```bash
135134
set MINDOC=//d/mindoc
136-
docker run -it --name=mindoc --restart=always -v "%MINDOC%":"/mindoc-sync-host" -p 8181:8181 -e MINDOC_ENABLE_EXPORT=true -d registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1-beta.5
135+
docker run -it --name=mindoc --restart=always -v "%MINDOC%":"/mindoc-sync-host" -p 8181:8181 -e MINDOC_ENABLE_EXPORT=true -d registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1-beta.6
137136
```
138137

139138
##### Linux、Mac
140139
```bash
141140
export MINDOC=/home/ubuntu/mindoc-docker
142-
docker run -it --name=mindoc --restart=always -v "${MINDOC}":"/mindoc-sync-host" -p 8181:8181 -e MINDOC_ENABLE_EXPORT=true -d registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1-beta.5
141+
docker run -it --name=mindoc --restart=always -v "${MINDOC}":"/mindoc-sync-host" -p 8181:8181 -e MINDOC_ENABLE_EXPORT=true -d registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1-beta.6
143142
```
144143

145144
##### 举个栗子-更多环境变量示例(镜像已过期,仅供参考,请以当前镜像为准)

appveyor.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ build_script:
4444
4545
go mod tidy -v
4646
47-
go build -v -o "mindoc_windows_%GOARCH%.exe" -ldflags="-w -X github.com/mindoc-org/mindoc/conf.VERSION=%APPVEYOR_REPO_TAG_NAME% -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=%date% %time%' -X 'conf.GO_VERSION=%GO_VERSION%'"
47+
go build -v -o "mindoc_windows_%GOARCH%.exe" -ldflags="-w -X github.com/mindoc-org/mindoc/conf.VERSION=%APPVEYOR_REPO_TAG_NAME% -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=%date% %time%' -X 'github.com/mindoc-org/mindoc/conf.GO_VERSION=%GO_VERSION%'"
4848
49-
7z a -t7z -r mindoc_windows_%GOARCH%.7z conf/*.conf* conf/lang/* static/* mindoc_windows_%GOARCH%.exe views/* uploads/*
49+
7z a -t7z -r mindoc_windows_%GOARCH%.7z conf/*.conf* conf/lang/* static/* mindoc_windows_%GOARCH%.exe views/* uploads/* lib/* favicon.ico LICENSE.md
5050
test_script:
5151
- cmd: >-
5252
cd c:\gopath\src\github.com\mindoc-org\mindoc

build_amd64.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
rm mindoc_linux_amd64 mindoc_linux_musl_amd64
2+
rm -rf ../mindoc_linux_amd64/
3+
4+
export GOARCH=amd64
5+
export GOOS=linux
6+
export CC=/usr/bin/gcc
7+
8+
export TRAVIS_TAG=v2.1-beta.6
9+
10+
go mod tidy -v
11+
go build -v -o mindoc_linux_amd64 -ldflags="-linkmode external -extldflags '-static' -w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'github.com/mindoc-org/mindoc/conf.GO_VERSION=`go version`'"
12+
./mindoc_linux_amd64 version
13+
14+
mkdir ../mindoc_linux_amd64
15+
cp -r * ../mindoc_linux_amd64
16+
cd ../mindoc_linux_amd64
17+
rm -rf cache commands controllers converter .git .github graphics mail models routers utils runtime
18+
rm appveyor.yml docker-compose.yml Dockerfile .travis.yml .gitattributes .gitignore go.mod go.sum main.go README.md simsun.ttc start.sh sync_host.sh build_amd64.sh build_musl_amd64.sh
19+
zip -r mindoc_linux_amd64.zip conf static uploads views lib mindoc_linux_amd64 favicon.ico LICENSE.md
20+
mv ./mindoc_linux_amd64.zip ../

build_musl_amd64.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
rm mindoc_linux_musl_amd64 mindoc_linux_amd64
2+
rm -rf ../mindoc_linux_musl_amd64/
3+
4+
export GOARCH=amd64
5+
export GOOS=linux
6+
export CC=/usr/local/musl/bin/musl-gcc
7+
8+
export TRAVIS_TAG=v2.1-beta.6
9+
10+
go mod tidy -v
11+
go build -v -o mindoc_linux_musl_amd64 -ldflags="-linkmode external -extldflags '-static' -w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'github.com/mindoc-org/mindoc/conf.GO_VERSION=`go version`'"
12+
./mindoc_linux_musl_amd64 version
13+
14+
mkdir ../mindoc_linux_musl_amd64
15+
cp -r * ../mindoc_linux_musl_amd64
16+
cd ../mindoc_linux_musl_amd64
17+
rm -rf cache commands controllers converter .git .github graphics mail models routers utils runtime
18+
rm appveyor.yml docker-compose.yml Dockerfile .travis.yml .gitattributes .gitignore go.mod go.sum main.go README.md simsun.ttc start.sh sync_host.sh build_amd64.sh build_musl_amd64.sh
19+
zip -r mindoc_linux_musl_amd64.zip conf static uploads views lib mindoc_linux_musl_amd64 favicon.ico LICENSE.md
20+
mv ./mindoc_linux_musl_amd64.zip ../

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "3"
22
services:
33
mindoc:
4-
image: registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1-beta.5
4+
image: registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1-beta.6
55
container_name: mindoc
66
privileged: false
77
restart: always

go.mod

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,50 @@ go 1.18
44

55
require (
66
github.com/PuerkitoBio/goquery v1.4.1
7-
github.com/Unknwon/goconfig v0.0.0-20200908083735-df7de6a44db8 // indirect
8-
github.com/andybalholm/cascadia v1.2.0 // indirect
97
github.com/beego/beego/v2 v2.0.2-0.20210322114547-10ea897525a5
108
github.com/beego/i18n v0.0.0-20161101132742-e9308947f407
119
github.com/boombuler/barcode v1.0.0
12-
github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect
1310
github.com/howeyc/fsnotify v0.9.0
1411
github.com/kardianos/service v1.1.0
15-
github.com/lib/pq v1.7.0 // indirect
1612
github.com/lifei6671/gocaptcha v0.1.1
1713
github.com/mattn/go-runewidth v0.0.13
1814
github.com/mattn/go-sqlite3 v2.0.3+incompatible
1915
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
2016
github.com/russross/blackfriday/v2 v2.1.0
17+
gopkg.in/ldap.v2 v2.5.1
18+
)
19+
20+
require (
21+
github.com/Unknwon/goconfig v0.0.0-20200908083735-df7de6a44db8 // indirect
22+
github.com/andybalholm/cascadia v1.2.0 // indirect
23+
github.com/beorn7/perks v1.0.1 // indirect
24+
github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect
25+
github.com/cespare/xxhash/v2 v2.1.1 // indirect
26+
github.com/go-redis/redis/v7 v7.4.0 // indirect
27+
github.com/go-sql-driver/mysql v1.5.0 // indirect
28+
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
29+
github.com/golang/protobuf v1.4.2 // indirect
30+
github.com/gomodule/redigo v2.0.0+incompatible // indirect
31+
github.com/hashicorp/golang-lru v0.5.4 // indirect
32+
github.com/lib/pq v1.7.0 // indirect
33+
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
34+
github.com/mitchellh/mapstructure v1.3.3 // indirect
35+
github.com/pkg/errors v0.9.1 // indirect
36+
github.com/prometheus/client_golang v1.7.0 // indirect
37+
github.com/prometheus/client_model v0.2.0 // indirect
38+
github.com/prometheus/common v0.10.0 // indirect
39+
github.com/prometheus/procfs v0.1.3 // indirect
40+
github.com/rivo/uniseg v0.2.0 // indirect
41+
github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
2142
github.com/smartystreets/goconvey v1.6.4 // indirect
43+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
44+
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067 // indirect
45+
golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect
46+
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f // indirect
47+
golang.org/x/text v0.3.3 // indirect
48+
google.golang.org/protobuf v1.23.0 // indirect
2249
gopkg.in/asn1-ber.v1 v1.0.0-00010101000000-000000000000 // indirect
23-
gopkg.in/ldap.v2 v2.5.1
2450
gopkg.in/yaml.v2 v2.3.0 // indirect
25-
2651
)
2752

2853
replace gopkg.in/asn1-ber.v1 => github.com/go-asn1-ber/asn1-ber v1.5.0

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3C
5151
github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
5252
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
5353
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
54-
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
5554
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
5655
github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=
5756
github.com/go-asn1-ber/asn1-ber v1.5.0 h1:/S4hO/AO6tLMlPX0oftGSOcdGJJN/MuYzfgWRMn199E=
@@ -60,7 +59,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
6059
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
6160
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
6261
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
63-
github.com/go-redis/redis v6.14.2+incompatible h1:UE9pLhzmWf+xHNmZsoccjXosPicuiNaInPgym8nzfg0=
6462
github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
6563
github.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4=
6664
github.com/go-redis/redis/v7 v7.4.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg=

0 commit comments

Comments
 (0)