前不久入手一台机子搭私有服务器后,一直在往这个服务器里加入各种服务。起初是搭一个蚂蚁笔记,接着有用gogs和gitea搭了两个git远程仓库。
本来是想在发完带你使用Docker搭建私有云笔记后接着写一个gogs和gitea搭建,后来发现慕课网上已经有大佬发过了,图文并茂,我就不再写了。想看怎么搭建gogs的远程仓库的点这里 。当然还有很多大佬写过这个话题,可以在慕课网搜索gogs查看。
今天发现人人影视的客户端网页有Linux版web客户端,于是想自己封装一个镜像,放在自己的服务器上跑。(虽然最后测试了下下载有问题,已发邮件去给人人影视了,就当练手项目了_)。
思路
Linux的web版客户端是只是支持ubuntu和centos的,emmmm,我试试用debian:jessie-slim
做底包,最后发现也能跑。
有了底包,我们需要下载这个客户端,用Dockerfile和一个sh脚本自动化构建镜像。
在Dockerfile中,我们把文件解压好,暴露出端口号,运行sh脚本
在sh脚本中,我们运行客户端的二进制,启动服务,就能在指定的地址访问到页面进行下载了。
编写Dockerfile
FROM debian:jessie-slim
LABEL maintainer="bubao"
ENV TZ=Asia/Shanghai
COPY ./run.sh /root/
RUN set -ex && \n mkdir -p /root/tools && \n apt-get update && \n apt-get install -y --no-install-recommends make wget tar ca-certificates && \n wget http://113.132.128.133:8080/rrshareweb_linux.rar -O /root/rrshareweb_linux.rar && \n wget https://www.rarlab.com/rar/rarlinux-x64-5.6.0.tar.gz -O rarlinux.tar.gz && \n tar -xzf rarlinux.tar.gz -C /root/tools && rm rarlinux.tar.gz && \n cd /root/tools/rar && make && make install && cd / && whereis rar && \n /usr/local/bin/rar e /root/rrshareweb_linux.rar /root && \n rm /root/rrshareweb_linux.rar && \n tar -xzf /root/rrshareweb_centos7.tar.gz -C /root && \n rm /root/rrshareweb_centos*.tar.gz && \n chown -R root:root /root/rrshareweb && chmod a+x /root/rrshareweb/rrshareweb && chmod a+x /root/run.sh && \n ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && \n echo ${TZ} > /etc/timezone
EXPOSE 3001
CMD /bin/bash /root/run.sh
有这么多不认识的东西,用到的解释一下,更多的说明看文档。
FROM
:引用底包。
LABEL maintainer="bubao"
:镜像作者。
COPY
:复制外部文件到镜像中。
RUN
:执行命令,我这里只用了一个RUN,每一个RUN都会是一个新的层,没有必要使用多个层。
EXPOSE
:暴露端口,因为3001是客户端暴露的端口,在这里我们用3001,到时候运行镜像时再转发镜像。
CMD
:运行脚本
Dockerfile 文件是用于将需要的资源下载到镜像中,并解压到指定的位置,方便之后sh脚本运行。
共同学习,写下你的评论
评论加载中...
作者其他优质文章