通过docker搭建企业内部文档共享平台-MM-WiKi

前面已经通过源码包的方式搭建了MM-WiKi,本编将通过docker容器化的方式部署,此镜像基于centos7和mysql5.7,mm-wiki的版本为v0.2.1。

一、准备工作

1、安装docker

2、拉取所需镜像

docker pull centos:7

在这里插入图片描述

docker pull mysql5.7

在这里插入图片描述

3、创建所需目录

mkdir -p /home/mm-wiki/{
    
    mmwiki/{
    
    build_images,data},mysql/{
    
    sql,data}}
tree /home/mm-wiki/
/home/mm-wiki/
├── mmwiki ## mm-wiki相关目录
│   ├── build_images  #构建mm-wiki镜像的目录
│   └── data   #存放运行mm-wiki镜像后容器的数据目录,用户持久化
└── mysql #myql相关目录
    ├── data #存放运行mysql镜像后容器的数据目录,用户持久化
    └── sql  #存放运行mysql镜像后容器的初始化sql文件

4、下载mm-wiki安装包

wget https://github.com/phachon/mm-wiki/releases/download/v0.2.1/mm-wiki-v0.2.1-linux-amd64.tar.gz -o /home/mm-wiki/build_images/mm-wiki-v0.2.1-linux-amd64.tar.gz

二、运行mysql镜像生成容器

1、此处参考:通过docker快速部署mysql5.7

2、编写初始化sql文件和运行镜像生成容器

1> 初始化sql文件

cat << EOF > /home/mm-wiki/mysql/sql/init.sql  #路径和参考链接有变化
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
CREATE DATABASE mmwiki;
CREATE USER 'mmwiki'@'%' IDENTIFIED BY "mmwiki@123";
GRANT ALL ON mmwiki.* TO 'mmwiki'@'%' IDENTIFIED BY "mmwiki@123";
FLUSH PRIVILEGES;
EOF

2> 运行镜像生成容器的命令

docker run -itd --name mysql -h mysql -p 33306:3306 -v  /home/mm-wiki/mysql/sql:/docker-entrypoint-initdb.d/ -v  /home/mm-wiki/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 

在这里插入图片描述

三、运行mm-wiki镜像生成容器

1、构建mm-wiki镜像

1> 编写dockerfile文件

cat << EOF > /home/mm-wiki/mmwiki/build_images/dockerfile
#基础镜像
FROM centos:7
#指定维护者信息
MAINTAINER wkx wkx-422
#安装基础工具,可跳过
#RUN yum -y install wget vim telnet
#创建所需目录,分别是安装目录和数据目录
RUN mkdir -p /opt/mmwiki/{
    
    mm-wiki,data}
#下载安装包,网速慢的话可以跳过
#RUN wget https://github.com/phachon/mm-wiki/releases/download/v0.2.1/mm-wiki-v0.2.1-linux-amd64.tar.gz -o /opt/mm_wiki/mm-wiki.tar.gz
#将本地的安装包上传到容器中
ADD mm-wiki-v0.2.1-linux-amd64.tar.gz /opt/mmwiki/mm-wiki
#设置主目录
WORKDIR /opt/mmwiki/mm-wiki
#后台启动,用ENTRYPOINT代替
#CMD ./install/install
#拷贝启动脚本文件
COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
#赋予脚本启动权限
RUN  chmod +x /usr/bin/docker-entrypoint.sh
#暴露启动端口,如果没有--port参数,默认为8090;如果有启动--port参数,必须和docker-entrypoint.sh启动脚本中的--port参数的端口一致
EXPOSE 8090 8080
#挂起进程,便于下次容器启动时可以运行
ENTRYPOINT ["docker-entrypoint.sh"] 

2> 编写docker-entrypoint启动脚本(目的是在容器运行时后台进程挂起)

cat << EOF > /home/mm-wiki/mmwiki/build_images/docker-entrypoint.sh
#!/bin/bash
if [ -d /opt/mmwiki/mm-wiki ]; then  #判断容器内的安装目录释放存在
  cd /opt/mmwiki/mm-wiki
else
  echo "/opt/mmwiki/mm-wiki not found"
  return 51
fi

if [ -f ./install.lock ]; then  #判断容器内./install.lock是否存在,不存在则是install,否则为正常启动状态       
  ./mm-wiki --conf ./conf/mm-wiki.conf
else
  cd install && ./install  #如果需要指定端口,后面加--port=8087即可
fi
EOF

3> 构建镜像

docker build -t mm-wiki:v0.2.1 .

在这里插入图片描述

2、运行mm-wiki镜像

docker run -itd --name mm-wiki -h wiki --link mysql:db -p 8090:8090 -p 8080:8080 -v /home/mm-wiki/mmwiki/data:/opt/mmwiki/data mm-wiki:v0.2.1

四、浏览器引导安装

1、浏览器输入安装地址

http://192.168.16.115:8090/
在这里插入图片描述

2、界面操作

1> 许可协议

在这里插入图片描述

2> 环境检测

在这里插入图片描述

3> 系统配置

在这里插入图片描述

4> 数据库配置

在这里插入图片描述

5> 准备安装

在这里插入图片描述
在这里插入图片描述

6> 安装完成

在这里插入图片描述

7> 容器的日志

在这里插入图片描述

3、界面访问登录

1、重启mm-wiki容器

在这里插入图片描述

2、界面访问登录

192.168.16.115:8080
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44729138/article/details/110039386