Docker部署魔豆文档

  魔豆文库
  Go
1
0
0
字数:3880
博主: 勤勇学
发布于: 2024-08-02 00:04:12
原创声明:文章所有权为创作者【原创】所有,未经许可,不得转载!

Docker部署魔豆文档

魔豆文档是一个开源的类似百度文档的文档管理项目,官网地址为

https://moredoc.mnt.ltd

一、打标签

git tag -a 1.0.2 -m "1.0.2版本发布"

二、编译

编译前端

npm run generate

编译打包后端(如果在windows下推荐在git bash下执行)

make buildlinux

三、准备必要软件

需准备nodejs16.x的linux 64位安装包

使用到的构建镜像文件在docker文件夹下的结构

注意修改mysql的连接地址为服务器上的连接地址,在entrypoint.sh文件中,如果不修改,就在运行docker容器时指定环境变量

dockerfile的内容(注意调整里面的版本号与打包的版本号对应)

FROM ubuntu:jammy-20230126

ARG uid=1001
ARG gid=1001
ARG basedir=workspace
ARG DEBIAN_FRONTEND=noninteractive
EXPOSE 8880
# install wget
# install libreoffice
# install mupdf
# install supervisor
# install all needed tools
RUN  apt-get update \
  && apt-get install -y wget \
  && apt-get install -y python3 \
  && apt-get install -y libreoffice \
  && apt-get install -y mupdf mupdf-tools \
  && apt-get install -y supervisor \
  && apt-get install -y libopengl0 \
  && apt-get install -y xz-utils \
  && apt-get install -y unzip \
  && rm -rf /var/lib/apt/lists/*
RUN  apt-get update \
  && apt-get install -y language-pack-zh-hans \
  && apt-get install -y language-pack-ja \
  && apt-get install -y chinese* \
  && apt-get install -y libreoffice-l10n-zh-cn libreoffice-help-zh-cn \
  && apt-get install -y libreoffice-help-ja \
  && rm -rf /var/lib/apt/lists/*
# install inkscape
RUN  apt-get update \
  && apt-get install -y software-properties-common \
  && add-apt-repository ppa:inkscape.dev/stable \
  && apt-get update \
  && apt-get install -y inkscape

# install calibre
RUN  apt-get update \
  && apt-get install -y calibre
# COPY docker/linux-installer.py /linux-installer.py
# RUN pythn3 /linux-installer.py
# RUN wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | python3 -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

# install nodejs and svgo pm2
COPY node.tar.gz /usr/local/node.tar.gz

RUN tar -xzf /usr/local/node.tar.gz -C /usr/local --strip-components=1
ENV PATH="/usr/local/bin:${PATH}"
RUN rm -f /usr/local/node.tar.gz
RUN npm -v
RUN npm i -g svgo
RUN npm i -g pm2

# Add non root user
RUN addgroup --gid $gid --system moredoc\
  && adduser --uid $uid --disabled-password --system --gid $gid moredoc
# change to moredoc user
USER moredoc
WORKDIR /home/moredoc
ENV VERSION 1.0.2
# Get and Unpack Tomcat
# RUN wget https://github.com/mnt-ltd/moredoc/releases/download/v1.1.0/moredoc_${VERSION}_linux_amd64.zip -O ~/moredoc_${VERSION}_linux_amd64.zip
COPY moredoc_ce_${VERSION}_linux_amd64.tar.gz /home/moredoc/moredoc_ce_${VERSION}_linux_amd64.tar.gz
RUN cd ~/ && ls -al ~/ && \ 
  mkdir -p ~/$basedir && \
  tar -zxf ~/moredoc_ce_${VERSION}_linux_amd64.tar.gz -C ~/$basedir/
COPY entrypoint.sh entrypoint.sh
USER root
RUN chmod 777 entrypoint.sh
RUN chmod -R 777 /home/moredoc
USER moredoc
RUN mkdir $basedir/cache
RUN mkdir $basedir/documents
RUN mkdir $basedir/uploads
VOLUME $basedir/cache
VOLUME $basedir/documents
VOLUME $basedir/uploads
ENTRYPOINT ["./entrypoint.sh"]
ENV MYSQL_CONNECTION=dummy
CMD $MYSQL_CONNECTION

对开源仓库提供的dockefile作了微调,达到需要安装的插件都能安装上

四、构建镜像

进入docker文件夹

docker build -f dockerfile -t moredoc:1.0.2 .

构建完成,可以直接跳到运行镜像,也可以推送到远程仓库或私有仓库使用

如果使用远程的docker镜像仓库,则可以通过push推送到远程仓库

比如这里我是用的coding的docker仓库,顺便安利一句,目前来说coding真的YYDS,我的代码仓库、构建件仓库都在这上面

https://www.coding.net

docker tag moredoc:1.0.2 cutu-docker.pkg.coding.net/xcloud/xcloud/moredoc:1.0.2

docker push cutu-docker.pkg.coding.net/xcloud/xcloud/moredoc:1.0.2

注意,需要先使用docker login命令进行登录,进入coding的镜像仓库可获取登录所需信息

五、运行镜像

我们可以直接docker run运行,也可以使用docker-compose运行,直接参看官网的运行配置即可,我使用的是1panel管理容器,如果有需要使用1pannel来管理,以及相关的ssl证书管理、域名解析配置等,请留言一下