Docker安装部署DocHub

安装Docker

链接地址:https://www.bookstack.cn/read/docker-practice/install-README.md

还不会用Docker的朋友,建议简单学习下Docker。因为你学会docker,比你成功部署DocHub要快多…

配置阿里云的OSS

目前DocHub文库的文件存储,主要使用的是阿里云OSS。当然,后期会扩展腾讯云存储、百度云存储和七牛云存储等。

  1. 登录阿里云,进入OSS,创建两个bucket,一个设置为私有,一个设置为公共读,如私有的叫dochub-private,公共读的叫dochub-public

  2. 导入样式 Docker安装部署 DocHub v1.1 - 图1

创建一个txt文件,复制下面的文本粘贴进去。

  1. styleName:cover,styleBody:image/resize,m_pad,w_140,h_200,limit_0/auto-orient,0/quality,q_90
  2. styleName:avatar,styleBody:image/resize,m_fill,w_120,h_120,limit_0/auto-orient,0/quality,q_90
  3. styleName:banner,styleBody:image/resize,m_fill,w_825,h_316,limit_0/auto-orient,0/quality,q_90

进入公共读的bucket,如dochub-public,在导入样式里面选择导入样式,选择您刚刚的txt文件进行导入。

然后点击访问设置,将自定义分隔符设置为/,如图:

Docker安装部署 DocHub v1.1 - 图2

  1. 公共读的bucket,设置默认图片 默认图片,一般需要设置4张,分别是默认头像默认封面默认横幅一般默认图片。 图片自己选,然后上传到公共读的bucket的指定目录,如/default/目录,4张默认图片设置好之后,如我自己设置的如下:
    1. /default/avatar.png
    2. /default/cover.jpg
    3. /default/banner.jpg
    4. /default/default.jpg

下载Docker版的DocHub

下载如DocHub.{$version}_Docker.zip的附件,其中{$version}表示DocHub的版本,如DocHub.V1.0_Docker.zip

解压,会看到解压文件夹里面存在一下目录和文件。 Docker安装部署 DocHub v1.1 - 图3

  1. 进入conf目录,把所有xx.conf.example的文件改成xx.conf
  • 修改app.confrunmode = dev修改为runmode = prod即可,其他项不用动。(也可以不修改)
  • 修改database.conf 修改为你自己的数据库链接、账号和密码等。
  • 修改oss.conf 我这边自己的修改配置如下:
  1. [oss]
  2. #当前环境是否内网,内网则启用内网endpoint,否则启用外网endpoint
  3. IsInternal=false
  4. #内网的endpoint
  5. EndpointInternal=oss-cn-hongkong-internal.aliyuncs.com
  6. #外网的endpoint
  7. EndpointOuter=oss-cn-hongkong.aliyuncs.com
  8. #key
  9. AccessKeyId=你的key
  10. #secret
  11. AccessKeySecret=你的secret
  12. #供文档预览的bucket
  13. BucketPreview=dochub-public
  14. #供文档存储的bucket
  15. BucketStore=dochub-private
  16. #预览链接
  17. #PreviewUrl=http://wenku-preview.oss-cn-qingdao.aliyuncs.com
  18. PreviewUrl=http://dochub-public.oss-cn-hongkong.aliyuncs.com
  19. DownloadUrl=http://dochub-private.oss-cn-hongkong.aliyuncs.com
  20. #签名链接默认有效期时间,单位为秒
  21. UrlExpire=600
  22. #默认图片
  23. DefaultAvatar=/default/avatar.png
  24. DefaultCover=/default/cover.jpg
  25. DefaultBanner=/default/banner.jpg
  26. DefaultPic=/default/default.jpg

其中,IsInternal配置项,如果您的服务器跟阿里云OSS是在同一内网,则设置为true,否则设置为false。 最后面四项配置,就是我们刚刚在OSS设置的默认图片,如下:

  1. DefaultAvatar=/default/avatar.png
  2. DefaultCover=/default/cover.jpg
  3. DefaultBanner=/default/banner.jpg
  4. DefaultPic=/default/default.jpg
  • 修改email.conf 修改成你自己的邮箱配置。如我自己的配置:
    1. [email]
    2. host=smtpdm.aliyun.com
    3. port=80
    4. username=admin@wenkuzhijia.cn
    5. password=123456
    6. replyto=admin@wenkuzhijia.cn

Docker部署

在以上配置文件都修改好了的前提下,就可以创建您的DocHub镜像了。

进入在解压目录,执行如下命令:

  1. sudo docker build -t dochub .

其中,Dockerfile的文件内容,如下:

  1. FROM ubuntu:16.04
  2. MAINTAINER "TruthHun <TruthHun@QQ.COM>"
  3. # 阿里云源设置
  4. RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse "\
  5. "\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse "\
  6. "\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse "\
  7. "\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse "\
  8. "\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse "\
  9. "\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse "\
  10. "\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse "\
  11. "\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse "\
  12. "\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse "\
  13. "\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" > /etc/apt/sources.list
  14. # 安装字符编码支持
  15. RUN apt update -y && apt install -y locales && rm -rf /var/lib/apt/lists/* \
  16. && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
  17. ENV LANG en_US.utf8
  18. # 安装中文字体支持等相关依赖
  19. RUN apt update -y && apt install -y fonts-wqy-zenhei fonts-wqy-microhei wget libreoffice imagemagick pdf2svg poppler-utils xdg-utils wget xz-utils python \
  20. && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin
  21. COPY . /www/dochub/
  22. RUN chmod 0777 -R /www/dochub/
  23. WORKDIR /www/dochub
  24. CMD [ "./DocHub" ]

运行镜像

  1. sudo docker run -d -p 8090:8090 dochub

如果配置文件没有配置错,访问http://localhost:8090 ,就可以看到程序运行了。

然后自行设置反向代理,nginx反向代理,可以参考这里: https://beego.me/docs/deploy/nginx.md

事项说明

  1. docker启动的程序,我自己在测试的时候,能正常注册和登录,邮件发送也是成功的。当然,这不表示您部署的程序也能发送邮件成功,所以注意下邮件配置项,可能有些发送邮件的依赖,在dockerfile中没有安装,或者是邮件端口没有映射到宿主机。
  2. 有很多问题,我可能没遇到,但不代表不存在,所以在使用的时候,如果遇到问题,请先到GitHub或者gitee提交issue,再把issue链接发群里,我会抽时间看下和解决下。