赞
踩
前面已经通过源码包的方式搭建了MM-WiKi,本编将通过docker容器化的方式部署,此镜像基于centos7和mysql5.7,mm-wiki的版本为v0.2.1。
docker pull centos:7
docker pull mysql5.7
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文件
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
或
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
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
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"]
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
docker build -t mm-wiki:v0.2.1 .
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
http://192.168.16.115:8090/
192.168.16.115:8080
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。