| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- FROM alpine:3.10
- MAINTAINER Eddy xuq@bpmhome.cn
- ENV HOME /root
- RUN \
- echo -e "http://mirrors.ustc.edu.cn/alpine/v3.10/main" > /etc/apk/repositories && \
- echo -e "http://mirrors.ustc.edu.cn/alpine/v3.10/community" >> /etc/apk/repositories
- # 安装准备
- RUN apk update \
- && apk add --no-cache --virtual .build-deps bash gcc libc-dev make openssl-dev pcre-dev zlib-dev linux-headers curl gnupg libxslt-dev gd-dev geoip-dev
- # 下载fastdfs、libfastcommon、nginx插件的源码
- RUN cd /root \
- && curl -fSL https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz -o fastcommon.tar.gz \
- && curl -fSL https://codeload.github.com/happyfish100/fastdfs/tar.gz/V5.11 -o fastfs.tar.gz \
- && tar zxf fastcommon.tar.gz \
- && tar zxf fastfs.tar.gz
- # 安装libfastcommon
- RUN cd ${HOME}/libfastcommon-1.0.36/ \
- && ./make.sh \
- && ./make.sh install
- # 安装fastdfs v5.11
- RUN cd ${HOME}/fastdfs-5.11/ \
- && ./make.sh \
- && ./make.sh install
- # 配置fastdfs: base_dir
- RUN cd /etc/fdfs/ \
- && cp storage.conf.sample storage.conf \
- && cp tracker.conf.sample tracker.conf \
- && cp client.conf.sample client.conf \
- && sed -i "s|/home/yuqing/fastdfs|/var/local/fdfs/tracker|g" /etc/fdfs/tracker.conf \
- && sed -i "s|/home/yuqing/fastdfs|/var/local/fdfs/storage|g" /etc/fdfs/storage.conf \
- && sed -i "s|/home/yuqing/fastdfs|/var/local/fdfs/storage|g" /etc/fdfs/client.conf
- # 清理文件
- RUN rm -rf ${HOME}/*
- RUN apk del .build-deps gcc libc-dev make openssl-dev linux-headers curl gnupg libxslt-dev gd-dev geoip-dev
- RUN apk add bash pcre-dev zlib-dev
- # 配置启动脚本,在启动时中根据环境变量替换fastdfs端口
- # 默认fastdfs端口
- ENV FDFS_PORT 22122
- ENV FDFS_STORAGE_PORT=23000
- ENV TRACKER_WEB_PORT=6666
- ENV STORAGE_WEB_PORT=8888
- # 创建日志查看脚本
- RUN echo -e "\
- STORAGE=/var/local/fdfs/storage/logs/storaged.log\n\
- TRACKER=/var/local/fdfs/tracker/logs/trackerd.log\n\
- LOG=\"\"\n\
- if [ \"tracker\" = \"\$SERVER\" ]; then\n\
- LOG=\${TRACKER}; \n\
- elif [ \"storage\" = \"\$SERVER\" ]; then\n\
- LOG=\${STORAGE}; \n\
- else\n\
- LOG=\${STORAGE}; \n\
- fi\n\
- tail -F \${LOG};\n\
- ">/log.sh \
- && chmod u+x /log.sh
- # 创建启动脚本
- RUN echo -e "\
- #!/bin/bash\n\
- mkdir -p /var/local/fdfs/storage/data /var/local/fdfs/tracker; \n\
- ln -s /var/local/fdfs/storage/data/ /var/local/fdfs/storage/data/M00; \n\n\
- sed -i \"s/http.server_port=.*$/http.server_port=\$TRACKER_WEB_PORT/g\" /etc/fdfs/tracker.conf; \n\n\
- sed -i \"s/^port=.*$/port=\$FDFS_PORT/g\" /etc/fdfs/tracker.conf; \n\
- sed -i \"s/http.server_port=.*$/http.server_port=\$STORAGE_WEB_PORT/g\" /etc/fdfs/storage.conf; \n\n\
- sed -i \"s/^port=.*$/port=\$FDFS_STORAGE_PORT/g\" /etc/fdfs/storage.conf; \n\
- if [ \"\$IP\" = \"\" ]; then \n\
- IP=`ifconfig eth0 | grep inet | awk '{print \$2}'| awk -F: '{print \$2}'`; \n\
- fi \n\
- sed -i \"s/^tracker_server=.*$/tracker_server=\$IP:\$FDFS_PORT/g\" /etc/fdfs/client.conf; \n\
- sed -i \"s/^tracker_server=.*$/tracker_server=\$IP:\$FDFS_PORT/g\" /etc/fdfs/storage.conf; \n\
- if [ \"tracker\" = \"\$SERVER\" ]; then\n\
- /etc/init.d/fdfs_trackerd start; \n\
- elif [ \"storage\" = \"\$SERVER\" ]; then\n\
- /etc/init.d/fdfs_storaged start; \n\
- else\n\
- /etc/init.d/fdfs_trackerd start; \n\
- /etc/init.d/fdfs_storaged start; \n\
- fi\n\
- /bin/bash log.sh;\n\
- ">/start.sh \
- && chmod u+x /start.sh
- ENTRYPOINT ["/bin/bash","/start.sh"]
|