最近在使用showdoc时感觉挺方便的,但是在树莓派上拉取showdoc对应的镜像时特别慢,熬了一天半发现镜像倒在了最后一步,重试了好几次都没有拉去下来。后来仔细阅读了官网操作文档再加一点小运气今天成功给安装成功了。
showdoc的安装环境:
树莓派4b 4G内存、Ubuntu 22.04.2 64位系统、Docker version 24.0.2;
第一步、查看showdoc的开源仓库里是否有可以直接使用的安装包。
开源仓库地址:
国外地址:GitHub - star7th/showdoc: ShowDoc is a tool greatly applicable for an IT team to share documents online一个非常适合IT团队的在线API文档、技术文档工具
国内地址:showdoc: ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率。
showdoc安装官网指导文档:ShowDoc
经查阅发现源码里有个“ DockerfileARM ”文件,很是让人开心,查看语句后发现需要安装 arm64v8/wordpress:php7.4的镜像依赖。
DockerfileARM的内容
FROM arm64v8/wordpress:php7.4
COPY ./ /var/www/html/
RUN mkdir -p /showdoc_data/html
RUN cp -R /var/www/html/ /showdoc_data/
RUN rm -rf /usr/src/wordpress
COPY ./ /usr/src/wordpress
RUN echo "<?php echo file_get_contents('index.html'); ?>" > /var/www/html/web/index.php
RUN chmod -R 777 /var/www/html/
# 写环境变量
ENV SHOWDOC_DOCKER_VERSION 2.4
ENV SHOWDOC_DOCKER_ARM 1
看了一下标签,选择下载了最新的版本 v3.2.2,先下载下来。
第二步、安装 arm64v8/wordpress:php7.4
此次安装的arm64v8/wordpress:php8.1 ;后来发现在家的网络拉去该镜像特别慢,就在腾讯云上尝试了一下,意外发现成功了。拉取成功后将腾讯云上的镜像离线下载下来,
命令:
# 拉去镜像,
docker pull arm64v8/wordpress:php8.1
# 导出镜像离线文件,“f54802c4290 ”是镜像php8.1的ID,
# 导出的文件名为 “arm64v8.wordpress.php8.1.tar”
docker save f54802c4290 > arm64v8.wordpress.php8.1.tar
#下载:
sz arm64v8.wordpress.php8.1.tar
# 向树莓派的docker导入镜像
docker load < arm64v8.wordpress.php8.1.tar
# 导入后的镜像名称和版本是看不到的,需要自定义
docker tag f54802c42907 arm64v8/wordpress:php8.1
第三步、将showdoc源码上传至树莓派,准备生成镜像
执行如下步骤:
- 将 “showdoc-v3.2.2.zip”上传树莓指定文件夹,本次为“/home/docker/showdoc”
- 解压文件 showdoc-v3.2.2.zip,上图已经解压好了
unzip showdoc-v3.2.2.zip
- 进入加压后的文件“showdoc-v3.2.2”,删除其他Dockerfile 文件只留下 DockerfileARM ,并将其该名为 Dockerfile
rm -rf Dockerfile DockerfileChina
mv DockerfileARM Dockerfile
- 编辑 Dockerfile 将第一行“FROM arm64v8/wordpress:php7.4”改成“FROM arm64v8/wordpress:php8.1”
# 编辑Dockerfile文件
vi Dockerfile
#编辑好后的内容
FROM arm64v8/wordpress:php8.1
COPY ./ /var/www/html/
RUN mkdir -p /showdoc_data/html
RUN cp -R /var/www/html/ /showdoc_data/
RUN rm -rf /usr/src/wordpress
COPY ./ /usr/src/wordpress
RUN echo "<?php echo file_get_contents('index.html'); ?>" > /var/www/html/web/index.php
RUN chmod -R 777 /var/www/html/
# 写环境变量
ENV SHOWDOC_DOCKER_VERSION 2.4
ENV SHOWDOC_DOCKER_ARM 1
第四步、生成镜像“arm64v8/showdoc:3.2.2”
#进入待生成的镜像文件夹
cd /home/docker/showdoc/showdoc-v3.2.2/
# 执行生成命令
docker build -t arm64v8/showdoc:3.2.2 .
命令截图
第五步、验证镜像可行性
先运行容器,然后查看docker的运行状态,当容器稳定运行时则在浏览器访问,访问地址:http://【树莓派ip】:4999 ;就可以了。
# 运行容器
docker run -d --name showdoc -p 4999:80 arm64v8/showdoc:3.2.2
# 查看运行结果
docker ps
运行截图:
第六步、总结
本次实践主要解决树莓派 docker安装showdoc时拿不到可以直接用的镜像问题。
其中执行 docker pull star7th/showdoc:arm-latest 时特别慢,拉取国内镜像 :docker pull registry.cn-shenzhen.aliyuncs.com/star7th/showdoc 后,发现树莓派处理器不兼容,拉下来的镜像需要amd处理器,而树莓派的是arm。所以就使用这种方式来处理。