fastdfs 的Dockerfile
FROM centos:7
LABEL maintainer "[email protected]"
ENV FASTDFS_PATH=/opt/fdfs \
FASTDFS_BASE_PATH=/var/fdfs \
PORT= \
GROUP_NAME= \
TRACKER_SERVER=
#get all the dependences
RUN yum install -y git gcc make
#create the dirs to store the files downloaded from internet
RUN mkdir -p ${FASTDFS_PATH}/libfastcommon \
&& mkdir -p ${FASTDFS_PATH}/fastdfs \
&& mkdir ${FASTDFS_BASE_PATH}
#compile the libfastcommon
WORKDIR ${FASTDFS_PATH}/libfastcommon
RUN git clone --branch V1.0.36 --depth 1 https://github.com/happyfish100/libfastcommon.git ${FASTDFS_PATH}/libfastcommon \
&& ./make.sh \
&& ./make.sh install \
&& rm -rf ${FASTDFS_PATH}/libfastcommon
#compile the fastdfs
WORKDIR ${FASTDFS_PATH}/fastdfs
RUN git clone --branch V5.11 --depth 1 https://github.com/happyfish100/fastdfs.git ${FASTDFS_PATH}/fastdfs \
&& ./make.sh \
&& ./make.sh install \
&& rm -rf ${FASTDFS_PATH}/fastdfs
EXPOSE 22122 23000 8080 8888
VOLUME ["$FASTDFS_BASE_PATH", "/etc/fdfs"]
COPY conf/*.* /etc/fdfs/
COPY start.sh /usr/bin/
#make the start.sh executable
RUN chmod 777 /usr/bin/start.sh
ENTRYPOINT ["/usr/bin/start.sh"]
CMD ["tracker"]
docker-compose.yml
version: '3'
services:
tracker:
container_name: tracker
image: luhuiguo/fastdfs
command: tracker
network_mode: host
volumes:
- /var/fdfs/tracker:/var/fdfs
storage0:
container_name: storage0
image: luhuiguo/fastdfs
command: storage
network_mode: host
environment:
- TRACKER_SERVER=10.1.5.85:22122
volumes:
- /var/fdfs/storage0:/var/fdfs
# storage1:
# container_name: storage1
# image: luhuiguo/fastdfs
# command: storage
# network_mode: host
# environment:
# - TRACKER_SERVER=10.1.5.85:22122
# volumes:
# - /var/fdfs/storage1:/var/fdfs
# storage2:
# container_name: storage2
# image: luhuiguo/fastdfs
# command: storage
# network_mode: host
# environment:
# - TRACKER_SERVER=10.1.5.85:22122
# - GROUP_NAME=group2
# - PORT=24000
# volumes:
# - /var/fdfs/storage2:/var/fdfs
fastdfs-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tracker-deploy
namespace: paas-basic
labels:
name: tracker-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: tracker
spec:
nodeSelector:
fastdfs: "tracker"
terminationGracePeriodSeconds: 0
containers:
- name: tracker
image: luhuiguo/fastdfs
imagePullPolicy: Always
ports:
- containerPort: 22122
- containerPort: 23000
- containerPort: 8080
- containerPort: 8888
volumeMounts:
- name: tracker-volume
mountPath: /var/fdfs
command: ["/usr/bin/start.sh","tracker"]
volumes:
- name: tracker-volume
hostPath:
path: /home/data/fastdfs/tracker
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: storage0-deploy
namespace: paas-basic
labels:
name: storage0-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: storage0
spec:
nodeSelector:
fastdfs: "storage0"
terminationGracePeriodSeconds: 0
containers:
- name: storage0
image: luhuiguo/fastdfs
imagePullPolicy: Always
ports:
- containerPort: 22122
- containerPort: 23000
- containerPort: 8080
- containerPort: 8888
volumeMounts:
- name: storage0-volume
mountPath: /var/fdfs
env:
- name: TRACKER_SERVER
value: 10.96.0.110:22122
command: ["/usr/bin/start.sh","storage"]
volumes:
- name: storage0-volume
hostPath:
path: /home/data/fastdfs/storage0
fastdfs-service.yaml
apiVersion: v1
kind: Service
metadata:
name: tracker
labels:
app: tracker
namespace: paas-basic
spec:
selector:
app: tracker
type: NodePort
clusterIP: 10.96.0.110
ports:
- name: "22122"
port: 22122
targetPort: 22122
protocol: TCP
- name: "23000"
port: 23000
targetPort: 23000
protocol: TCP
- name: "8080"
port: 8080
targetPort: 8080
protocol: TCP
- name: "8888"
port: 8888
targetPort: 8888
protocol: TCP