![35c1c56aa414967bebed367b856a2f18.png](https://i-blog.csdnimg.cn/blog_migrate/8e32f40906163cf28972ea922bfc6a47.jpeg)
最近准备基于redis官方文档(https://redis.io)对redis进行深入的学习和梳理,但是查询redis命令需要网络的支持,非常不方便,于是萌发了搭建本redis的文档服务的想法。
Redis官网及文档资源源码地址
- redis官网源码地址:https://github.com/antirez/redis-io.git
- redis Command Document源码地址:https://github.com/antirez/redis-doc.git
搭建步骤
- 在个人电脑上安装docker环境。此类教程网上很多,在此不展开,有兴趣的可以在学习。
- 创建工作目录。
$ mkdir /redis-doc
- 进入刚刚创建的redis-doc文件夹,并创建Dockerfile,run.sh,sources.list三个文件。
$ touch Dockerfile run.sh sources.list
- 分开打开三个文件,写入如下代码,其中,Dockerfile是构建docker镜像所需要的文件,run.sh是启动镜像后所需要执行的脚本,sources.list是apt-get的数据源。
sources.list
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial universedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-propertiesdeb http://archive.canonical.com/ubuntu xenial partnerdeb-src http://archive.canonical.com/ubuntu xenial partnerdeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-security universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
Dockerfile
#基于ubuntu镜像构建FROM ubuntu#本人邮箱,欢迎交流MAINTAINER Sammy.Xiong (xxm_0316@126.com)#apt-get下载的时候禁止交互弹框ENV DEBIAN_FRONTEND noninteractive#删除原有apt-get数据源RUN rm /etc/apt/sources.list#使用阿里数据源COPY ./sources.list /etc/apt/sources.list#增加ruby仓库,下载依赖组建RUN apt-get updateRUN apt-get install -y python-software-properties software-properties-commonRUN apt-add-repository -y ppa:brightbox/ruby-ngRUN apt-get updateRUN apt-get install -y git wget ruby2.4 ruby2.4-dev make gcc#更换ruby国内源RUN gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/WORKDIR /RUN mkdir redisWORKDIR redis#git拉取redis-io(redis官网源码)和redis-doc(redis文档)RUN GIT_SSL_NO_VERIFY=true git clone https://github.com/antirez/redis-io.gitRUN GIT_SSL_NO_VERIFY=true git clone https://github.com/antirez/redis-doc.gitWORKDIR /redis#下载并编译、安装redis,因为redis-io启动需要redis服务RUN wget http://download.redis.io/releases/redis-4.0.8.tar.gzRUN tar xzvf redis-4.0.8.tar.gzRUN cd redis-4.0.8 && make && make installADD ./run.sh ./redis-io/WORKDIR redis-io#下载redis-io启动所需要组件RUN gem install depRUN dep installRUN chmod +x run.sh#开放端口9292EXPOSE 9292#镜像启动后执行run.sh启动redis服务及文档服务ENTRYPOINT /redis/redis-io/run.sh && /bin/bash
run.sh
#!/bin/bash#更新redis-doc及redis-io源码cd /redis/redis-docgit pullcd /redis/redis-iogit pull#启动redis服务/usr/local/bin/redis-server & #rackup启动文档服务REDIS_DOC=/redis/redis-doc /usr/local/bin/rackup -o 0.0.0.0 &
- 开始构建镜像,在刚创建的redis目录下执行docker构建命令。
docker build -t redis_doc_dockerfile .
构建会花一些时间,构建完成后,敲入docker images,就可以看到我们刚才创建的镜像,如下图:
![a074c4e216fb2c37bd533ba4964aec04.png](https://i-blog.csdnimg.cn/blog_migrate/c50fd84ffc9a03936dd31eb2b3131034.jpeg)
- 启动容器,测试部署效果,执行以下命令启动容器(我将本机80端口绑定在docker容器的9292端口):
docker run -it -p 80:9292 redis_doc_dockerfile:0.0.1
看到如下日志就表示启动成功了。
![3ff95a10d2cdad0d560ae7fb1721492c.png](https://i-blog.csdnimg.cn/blog_migrate/ed460172617bc01fde52003c425b3195.jpeg)
在本地通过http://localhost/来访问redis文档服务。
![664c7b97a256e6e377843a590cf9b404.png](https://i-blog.csdnimg.cn/blog_migrate/95c802bb82e6089fcbe006a559b2bf21.jpeg)
结尾
本人已经将构建docker镜像的相关源码文件上传在GitHub上,地址是:https://github.com/bear262505251/redis-doc.git,已经构建好的镜像仓库地址是:registry.cn-shenzhen.aliyuncs.com/xiongxiangming/redis-doc。
如果需要【深入浅出Redis】文档,转发关注+私信 免费赠送Redis文档。
![84b822ad6c2d4f663b10b682619e3c4b.png](https://i-blog.csdnimg.cn/blog_migrate/84098b912571c3b1b0bd37fd24b02469.jpeg)
![07445e9dc3dbf3e905787637333b28df.png](https://i-blog.csdnimg.cn/blog_migrate/56de8795ad8aba57ce5bacf9463eecdb.jpeg)
![dc121ee26b4a5823688f3ad1c080f565.png](https://i-blog.csdnimg.cn/blog_migrate/2d41ebbd3c4447cc042aeb496dd43ad0.jpeg)
![9600d11536c6e53587e985aeae575bc2.png](https://i-blog.csdnimg.cn/blog_migrate/57fca358893498b08ba9120bcc215f4d.jpeg)