fastdfs/docker/dockerfile_network/Dockerfile

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"]