@@ -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
@@ -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
@@ -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
@@ -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]
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]
+;操作者,图形界面后台,可以直接访问daemon-manager
+[operater]
+image = admin
+port = 8087:8011,8088:8012
+;master、manager、operater为主机开启
+;client、worker为其他机器开启
@@ -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
+volumes = /data/tt:/files
+command = nfs
+;mount -v -t nfs -o vers=4,port=2049 127.0.0.1:/ /mnt/nfs
@@ -113,4 +113,7 @@ pdf2htmlex = office/pdf2htmlex
convert = office/convert
;balance
-lvs = balance/lvs
+lvs = balance/lvs
+;file
+nfs = file/nfs
@@ -464,7 +464,8 @@ class Container(object):
,'root' : '--privileged='
,'memory' : '--memory='
,'shm' : '--shm-size='
- ,'expose' : '--expose',
+ ,'expose' : '--expose'
+ ,'super' : '--privileged='
}
@staticmethod
def drop():