98 lines
3.7 KiB
Docker
98 lines
3.7 KiB
Docker
# centos 7
|
|
FROM centos:7
|
|
# 添加配置文件
|
|
ADD conf/client.conf /etc/fdfs/
|
|
ADD conf/http.conf /etc/fdfs/
|
|
ADD conf/mime.types /etc/fdfs/
|
|
ADD conf/storage.conf /etc/fdfs/
|
|
ADD conf/tracker.conf /etc/fdfs/
|
|
ADD fastdfs.sh /home
|
|
ADD conf/nginx.conf /etc/fdfs/
|
|
ADD conf/mod_fastdfs.conf /etc/fdfs
|
|
|
|
# run
|
|
# install packages
|
|
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
|
|
# git clone libfastcommon / libserverframe / fastdfs / fastdfs-nginx-module
|
|
RUN cd /usr/local/src \
|
|
&& git clone https://gitee.com/fastdfs100/libfastcommon.git \
|
|
&& git clone https://gitee.com/fastdfs100/libserverframe.git \
|
|
&& git clone https://gitee.com/fastdfs100/fastdfs.git \
|
|
&& git clone https://gitee.com/fastdfs100/fastdfs-nginx-module.git \
|
|
&& pwd && ls
|
|
# build libfastcommon / libserverframe / fastdfs
|
|
RUN mkdir /home/dfs \
|
|
&& cd /usr/local/src \
|
|
&& pwd && ls \
|
|
&& cd libfastcommon/ \
|
|
&& ./make.sh && ./make.sh install \
|
|
&& cd ../ \
|
|
&& cd libserverframe/ \
|
|
&& ./make.sh && ./make.sh install \
|
|
&& cd ../ \
|
|
&& cd fastdfs/ \
|
|
&& ./make.sh && ./make.sh install
|
|
# download nginx and build with fastdfs-nginx-module
|
|
# 推荐 NGINX 版本:
|
|
# NGINX_VERSION=1.16.1
|
|
# NGINX_VERSION=1.17.10
|
|
# NGINX_VERSION=1.18.0
|
|
# NGINX_VERSION=1.19.10
|
|
# NGINX_VERSION=1.20.2
|
|
# NGINX_VERSION=1.21.6
|
|
# NGINX_VERSION=1.22.1
|
|
# NGINX_VERSION=1.23.3
|
|
# 可在 docker build 命令中指定使用的 nginx 版本, 例如:
|
|
# docker build --build-arg NGINX_VERSION="1.16.1" -t happyfish100/fastdfs:latest -t happyfish100/fastdfs:6.09.01 .
|
|
# docker build --build-arg NGINX_VERSION="1.19.10" -t happyfish100/fastdfs:latest -t happyfish100/fastdfs:6.09.02 .
|
|
# docker build --build-arg NGINX_VERSION="1.23.3" -t happyfish100/fastdfs:latest -t happyfish100/fastdfs:6.09.03 .
|
|
ARG NGINX_VERSION=1.16.1
|
|
RUN cd /usr/local/src \
|
|
&& NGINX_PACKAGE=nginx-${NGINX_VERSION} \
|
|
&& NGINX_FILE=${NGINX_PACKAGE}.tar.gz \
|
|
&& wget http://nginx.org/download/${NGINX_FILE} \
|
|
&& tar -zxvf ${NGINX_FILE} \
|
|
&& pwd && ls \
|
|
&& cd /usr/local/src \
|
|
&& cd ${NGINX_PACKAGE}/ \
|
|
&& ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ \
|
|
&& make && make install \
|
|
&& chmod +x /home/fastdfs.sh
|
|
|
|
# 原来的 RUN 语句太复杂, 不利于 docker build 时使用多阶段构建缓存
|
|
# RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y \
|
|
# && NGINX_VERSION=1.19.9 \
|
|
# && NGINX_PACKAGE=nginx-${NGINX_VERSION} \
|
|
# && NGINX_FILE=${NGINX_PACKAGE}.tar.gz \
|
|
# && cd /usr/local/src \
|
|
# && git clone https://gitee.com/fastdfs100/libfastcommon.git \
|
|
# && git clone https://gitee.com/fastdfs100/libserverframe.git \
|
|
# && git clone https://gitee.com/fastdfs100/fastdfs.git \
|
|
# && git clone https://gitee.com/fastdfs100/fastdfs-nginx-module.git \
|
|
# && wget http://nginx.org/download/${NGINX_FILE} \
|
|
# && tar -zxvf ${NGINX_FILE} \
|
|
# && mkdir /home/dfs \
|
|
# && cd /usr/local/src/ \
|
|
# && cd libfastcommon/ \
|
|
# && ./make.sh && ./make.sh install \
|
|
# && cd ../ \
|
|
# && cd libserverframe/ \
|
|
# && ./make.sh && ./make.sh install \
|
|
# && cd ../ \
|
|
# && cd fastdfs/ \
|
|
# && ./make.sh && ./make.sh install \
|
|
# && cd ../ \
|
|
# && cd ${NGINX_PACKAGE}/ \
|
|
# && ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ \
|
|
# && make && make install \
|
|
# && chmod +x /home/fastdfs.sh
|
|
|
|
RUN ln -s /usr/local/src/fastdfs/init.d/fdfs_trackerd /etc/init.d/fdfs_trackerd \
|
|
&& ln -s /usr/local/src/fastdfs/init.d/fdfs_storaged /etc/init.d/fdfs_storaged
|
|
|
|
# export config
|
|
VOLUME /etc/fdfs
|
|
|
|
EXPOSE 22122 23000 8888 80
|
|
ENTRYPOINT ["/home/fastdfs.sh"]
|