目录结构
[root@fastdfs]# tree .
.
├── conf
│ ├── client.conf
│ ├── http.conf
│ ├── mime.types
│ ├── mod_fastdfs.conf
│ ├── nginx.conf
│ ├── storage.conf
│ └── tracker.conf
├── Dockerfile
├── fastdfs.sh
└── source
├── fastdfs-nginx-module.tar.gz
├── fastdfs.tar.gz
├── libfastcommon.tar.gz
└── nginx-1.15.4.tar.gz
2 directories, 13 files
编写dockerfile,可以自定义启动项目
FROM centos:7.7.1908
LABEL app.maintainer=foxchan
LABEL app.version="v6.06"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' >/etc/timezone
ENV libfastcommon V1.0.43
ENV fastdfs V6.06
ENV fastdfs-nginx-module V1.22
ADD fastdfs.sh /home
ADD source/libfastcommon.tar.gz /usr/local/src/
ADD source/fastdfs.tar.gz /usr/local/src/
ADD source/fastdfs-nginx-module.tar.gz /usr/local/src/
ADD source/nginx-1.15.4.tar.gz /usr/local/src/
# run
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y \
&& mkdir -p /data/dfs/{tracker,storage} \
&& cd /usr/local/src/ \
&& cd libfastcommon-1.0.43/ \
&& ./make.sh && ./make.sh install \
&& cd ../ \
&& cd fastdfs-6.06/ \
&& ./make.sh && ./make.sh install \
&& cd ../ \
&& cd nginx-1.15.4/ \
&& ./configure --add-module=/usr/local/src/fastdfs-nginx-module-1.22/src/ \
&& make && make install \
&& chmod +x /home/fastdfs.sh
VOLUME /etc/fdfs
VOLUME /data/dfs
ENTRYPOINT /home/fastdfs.sh && /bin/bash
启动脚本
#!/bin/bash
#Date: 2020-03-11
#Writer: foxchan
mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.t
cp /etc/fdfs/nginx.conf /usr/local/nginx/conf
if [ "$role" == "tracker" ];then
echo "start trackerd"
/etc/init.d/fdfs_trackerd start
elif [ "$role" == "storage" ];then
echo "start storaged"
/etc/init.d/fdfs_storaged start
echo "start nginx"
/usr/local/nginx/sbin/nginx
else
echo -e "Usage: role [tracker | storage]"
fi
启动命令
docker run -dit --net=host -e role=tracker -v /data/dfs/conf:/etc/fdfs/ -v /data/dfs:/data/dfs --name tracker fastdfs:v6.06
docker run -dit --net=host -e role=storage -v /data/dfs/conf:/etc/fdfs/ -v /data/dfs:/data/dfs --name storage fastdfs:v6.06