rabin 7 yıl önce
ebeveyn
işleme
e0c5288336

+ 17 - 0
src/docker/build/file/nfs/Dockerfile

@@ -0,0 +1,17 @@
+FROM docker.dever.cc/os/alpine:latest
+
+MAINTAINER Rabin "https://github.com/shemic"
+
+ENV NFS_DIR=/files
+ENV NFS_DOMAIN=*
+ENV NFS_OPTION=rw,fsid=0,sync,no_subtree_check,no_auth_nlm,insecure,no_root_squash,crossmnt,no_acl
+
+RUN apk add --no-cache --update nfs-utils && \
+    mkdir -p /var/lib/nfs/v4recovery
+
+COPY nfs.sh /entrypoint/nfs.sh
+
+EXPOSE 111/tcp 111/udp 2049/tcp 2049/udp
+
+VOLUME /files
+WORKDIR /files

+ 21 - 0
src/docker/build/file/nfs/nfs.sh

@@ -0,0 +1,21 @@
+#!/usr/bin/env sh
+set -e
+
+start_nfs()
+{
+	echo "$NFS_DIR $NFS_DOMAIN($NFS_OPTION)" > /etc/exports
+    process_start /usr/sbin/exportfs -r
+    process_start /sbin/rpcbind -s
+    process_start /usr/sbin/rpc.nfsd --no-nfs-version 2 --no-nfs-version 3 8 |:
+    process_start /usr/sbin/rpc.mountd -F
+}
+
+stop_nfs()
+{
+    process_stop rpcbind
+}
+
+monit_nfs()
+{
+	process_monit rpcbind
+}

+ 1 - 3
src/docker/build/office/convert/Dockerfile

@@ -17,6 +17,4 @@ RUN apk add --no-cache --update git gcc curl gcc g++ python-dev py-pip imagemagi
 
 EXPOSE 8087 8088
 
-#COPY convert.sh /entrypoint/convert.sh
-
-#CMD ["convert"]
+COPY convert.sh /entrypoint/convert.sh

+ 21 - 1
src/docker/conf/daemon.conf

@@ -3,6 +3,7 @@ path = {base}
 default = master
 network = overlay_dm
 
+;服务注册
 [master]
 image = consul
 port = 8500
@@ -12,8 +13,27 @@ alias = consul
 slave = 2
 slave_command = consul -server -data-dir=/root/consul/data -config-dir=/root/consul/config -client=0.0.0.0 -join={parent} -dc={parent}
 
+;服务发现
 [client]
 image = consul
 volumes = {container}conf/service/consul:/root/consul/config
 command = consul -data-dir=/root/consul/data -client=0.0.0.0 -join=daemon-master -dc=daemon-master
-alias = consul->consul_client
+alias = consul->consul_client
+
+;文件共享与管理者
+[manager]
+image = nfs
+super = true
+
+;文件发现
+[worker]
+image = nfs
+super = true
+
+;操作者,图形界面后台,可以直接访问daemon-manager
+[operater]
+image = admin
+port = 8087:8011,8088:8012
+
+;master、manager、operater为主机开启
+;client、worker为其他机器开启

+ 8 - 1
src/docker/conf/server.conf

@@ -31,4 +31,11 @@ environment = RABBITMQ_DEFAULT_USER=rabin,RABBITMQ_DEFAULT_PASS=123456,RABBITMQ_
 port = 8081:80,8082:81,8125:8125/udp,2003:2003,8126:8126
 
 [lvs]
-command = sh
+command = sh
+
+[nfs]
+port = 2049:2049/tcp,2049:2049/udp
+super = true
+volumes = /data/tt:/files
+command = nfs
+;mount -v -t nfs -o vers=4,port=2049 127.0.0.1:/ /mnt/nfs

+ 4 - 1
src/docker/core.conf

@@ -113,4 +113,7 @@ pdf2htmlex			= office/pdf2htmlex
 convert				= office/convert
 
 ;balance
-lvs					= balance/lvs
+lvs					= balance/lvs
+
+;file
+nfs                 = file/nfs

+ 2 - 1
src/tool/docker.py

@@ -464,7 +464,8 @@ class Container(object):
 			,'root' : '--privileged='
 			,'memory' : '--memory='
 			,'shm' : '--shm-size='
-			,'expose' : '--expose',
+			,'expose' : '--expose'
+			,'super' : '--privileged='
 		}
 	@staticmethod
 	def drop():