ソースを参照

Merge branch 'master' of ssh://git.dever.cc:10022/python/dm

dever 6 年 前
コミット
7c1827f469

+ 1 - 0
container/conf/db/redis/redis.conf

@@ -478,6 +478,7 @@ slave-priority 100
 # use a very strong password otherwise it will be very easy to break.
 #
 # requirepass foobared
+requirepass dm_redis_123
 
 # Command renaming.
 #

+ 61 - 0
container/conf/web/nginx/conf.d/domain.conf

@@ -0,0 +1,61 @@
+server {
+    server_name me.5dev.cn;
+    listen 80;
+    
+    autoindex on;
+
+    set $charset utf-8;
+
+    charset $charset;
+
+    set $rootdir /www/jiaoyoucms;
+    root $rootdir;
+    index index.php index.html;
+
+    set $rewrite yes;
+
+    location ~ ^/favicon\.ico$ {
+        root $rootdir;
+    }
+    
+    location ~* (.*).tpl {
+        return 404;
+    }
+
+    if ( $request_uri ~* ^/(data\/|public\/|assets\/|static\/|crossdomain\.xml|index\.php|favicon\.ico) ) {
+        set $rewrite no;
+    }
+
+
+    if ($rewrite ~* yes) {
+        rewrite ^/(.*) /index.php/$1 last;
+    }
+
+    location ~ /(data\/|public\/|assets\/|static\/|crossdomain\.xml)
+    {
+        try_files $uri $uri/ /index.html;
+    }
+
+    location /doc/ {
+    	alias /usr/share/doc/;
+		autoindex on;
+		allow 127.0.0.1;
+		allow ::1;
+		deny all;
+    }
+
+    location ~ ^(.*)$ {
+        fastcgi_split_path_info ^(.+\.php)(/.+)$;
+        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+
+        # With php-cgi alone:
+        fastcgi_pass web-php7:9000;
+        #fastcgi_pass onepage-php5:9000;
+        # With php-fpm:
+        #fastcgi_pass unix:/var/run/php7-fpm.sock;
+        fastcgi_index index.php;
+        fastcgi_param  SCRIPT_FILENAME  $rootdir/index.php;
+        fastcgi_param  PATH_INFO $fastcgi_path_info;
+        include fastcgi_params;
+    }
+}

+ 3 - 1
container/conf/web/nginx/conf.d/site.conf

@@ -35,9 +35,10 @@ server {
                 # include /etc/nginx/naxsi.rules
     }
 
+    #location ~ ^(.*)$ {
     location ~ \.php$ {
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
-        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini (No settings!)
 
         # With php-cgi alone:
         fastcgi_pass web-php7:9000;
@@ -46,6 +47,7 @@ server {
         #fastcgi_pass unix:/var/run/php7-fpm.sock;
         fastcgi_index index.php;
         fastcgi_param  SCRIPT_FILENAME  $rootdir/$fastcgi_script_name;
+        #fastcgi_param  PATH_INFO $fastcgi_path_info;
         include fastcgi_params;
     }
 }

+ 1 - 0
container/conf/web/php7/conf.d/00_xmlwriter.ini

@@ -0,0 +1 @@
+extension=xmlwriter.so

+ 1 - 1
data/runtime.conf

@@ -1,7 +1,7 @@
 [base]
 store = aliyun
 cluster = dm_cluster
-dever = http://git.5dev.cn:3000/php_package/
+dever = http://git.dever.cc:3000/dever-package/
 
 [val]
 version = v1.0.0

+ 16 - 4
install

@@ -20,9 +20,6 @@ tee /etc/docker/daemon.json <<-'EOF'
 EOF
 service docker restart
 
-# python-daemon
-# pip install python-daemon
-
 chmod -R +x src/*.py
 chmod -R +x src/shell
 chmod -R 777 container/share/
@@ -34,7 +31,22 @@ ln -sf $basepath/src/dpc.py /usr/bin/dpc && chmod +x /usr/bin/dpc
 ln -sf $basepath/src/dever.py /usr/bin/dever && chmod +x /usr/bin/dever
 ln -sf $basepath/src/dgit.py /usr/bin/dgit && chmod +x /usr/bin/dgit
 
-python $basepath/src/daemon.py &
+# python-pip
+pipstatus=`check pip`
+if [ "$pipstatus" = 0 ]; then
+	wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py && rm -rf get-pip.py
+fi
+# python-daemon 用不到了
+#pip install python-daemon
+#pip install redis
+
+yumstatus=`check yum`
+if [ "$yumstatus" = 0 ]; then
+	apt install python-gevent
+else
+	yum install python-gevent
+fi
+#python $basepath/src/daemon.py &
 
 docker version
 echo 'install success!'

+ 56 - 0
src/daemon.py

@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# dm_process为key,value为具体指令 如:dm call office-convert_call id=1
+import time
+import os
+#import pprint
+#import subprocess
+from gevent import monkey; monkey.patch_socket()
+import gevent
+timeSleep = 15
+password = 'dm_redis_123'
+
+def redis():
+        import redis
+        host = '0.0.0.0'
+        port = 6379
+        pool = redis.ConnectionPool(host=host, port=int(port), password=password)
+        return redis.Redis(connection_pool=pool)
+
+def pop(key):
+        return popen('redis -a '+password+' lpop ' + key)
+
+def command(process):
+        return process
+
+def popen(command, bg=False):
+        string = command
+        if bg == True:
+                command = command + ' &'
+        process = os.popen(command)
+        output = process.read()
+        process.close()
+        return output
+
+# 定时执行进程
+def process():
+        r = redis()
+        c = 'dm_process'
+        i = 0
+        while 1:
+                value = r.lpop(c)
+                if value:
+                        g = command(value)
+                        popen(g)
+                i = i+1
+                if i >= 10:
+                        gevent.sleep(timeSleep)
+                        i = 0
+
+def handle():
+	gevent.joinall([
+		gevent.spawn(process),
+		#gevent.spawn(backup),
+	])
+
+handle()

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

@@ -9,21 +9,26 @@ ENV PATH=$PATH:$DEMETER_HOME
 
 RUN echo -e '@community http://mirrors.ustc.edu.cn/alpine/edge/community' >> /etc/apk/repositories
 
-RUN apk add --no-cache --update git curl nginx gcc g++ python-dev py-pip make cmake openssl-dev libffi-dev imagemagick6@community imagemagick6-dev@community && \
+#rm -rf $DEMETER_HOME/runtime/mysql/* && \
+# apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev && pip install pillow && pip install pdf2image
+
+#git clone https://github.com/dawbarton/pdf2svg && cd pdf2svg && cp README.md README && ./configure && make && make install
+
+RUN apk add --no-cache --update git curl nginx gcc g++ python-dev py-pip make cmake m4 openssl-dev libffi-dev imagemagick6@community imagemagick6-dev@community && \
 	pip install --upgrade pip && \
 	pip install gevent==1.2 && \
 	pip install redis && \
 	pip install wand && \
+	pip install pdf2jpg && \
 	pip install -U git+http://git.dever.cc:3000/python/demeter.git && \
 	git clone http://git.dever.cc:3000/python/convert.git $DEMETER_HOME && \
-	rm -rf $DEMETER_HOME/runtime/mysql/* && \
 	curl -O https://fossies.org/linux/misc/poppler-data-0.4.9.tar.gz && \
 	tar -zxvf poppler-data-0.4.9.tar.gz && \
 	cd poppler-data-0.4.9 && \
 	make install datadir=/usr/share && \
 	mkdir /run/nginx/ && \
 	rm -rf /etc/nginx/conf.d/default.conf && \
-	apk del curl make cmake gcc g++ python-dev
+	apk del curl m4 make cmake gcc g++ python-dev
 
 EXPOSE 8087 8088 80 443
 

+ 1 - 0
src/docker/build/office/convert/convert.conf

@@ -3,6 +3,7 @@ server
     server_name localhost;
     listen 80 default_server;
     root /www/convert/;
+    add_header 'Access-Control-Allow-Origin' '*';
 
 	location ^~ /static/ {
         try_files $uri $uri/ =404;

+ 3 - 3
src/docker/build/office/pdf2htmlex/Dockerfile

@@ -6,7 +6,7 @@ MAINTAINER Rabin "https://github.com/shemic"
 
 ENV REFRESHED_AT 20151105
 
-RUN apk --update add alpine-sdk xz poppler-dev pango-dev m4 libtool perl autoconf automake coreutils python-dev zlib-dev freetype-dev glib-dev cmake libxml2-dev && \
+RUN apk --update add alpine-sdk xz poppler-dev pango-dev libtool perl autoconf automake coreutils python-dev zlib-dev freetype-dev glib-dev cmake build-base autoconf libxml2-dev && \
     cd / && \
     git clone https://github.com/BWITS/fontforge.git && \
     cd fontforge && \
@@ -16,10 +16,10 @@ RUN apk --update add alpine-sdk xz poppler-dev pango-dev m4 libtool perl autocon
     make install && \
     cd / && \
     git clone git://github.com/coolwanglu/pdf2htmlEX.git && \
-    cd pdf2htmlEX && \
+    cd pdf2htmlEX && ./configure && make && make install && \
     export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig && \
     cmake . && make && sudo make install && \
-    apk del alpine-sdk xz poppler-dev pango-dev m4 libtool perl autoconf automake coreutils python-dev zlib-dev freetype-dev glib-dev cmake && \
+    apk del alpine-sdk xz poppler-dev pango-dev libtool perl autoconf autoconf automake coreutils python-dev zlib-dev freetype-dev glib-dev cmake build-base && \
     apk add libpng python freetype glib libintl libxml2 libltdl cairo poppler pango && \
     rm -rf /var/lib/apt/lists/* && \
     rm /var/cache/apk/* && \

+ 8 - 0
src/docker/conf/chengmao.conf

@@ -45,4 +45,12 @@ volumes = {container}web/leek:/root/input,{container}web/leek/doc:/root/output,{
 call = apidoc
 #使用dm call iot-apidoc input=demo&out=output来运行,然后可以在宿主机里使用apidoc命令
 param = -i /root/input/doc -o /root/output -c /root/config
+alias = apidoc
+
+[xjm_apidoc]
+image = apidoc
+volumes = {container}web/mall:/root/input,{container}web/mall/doc:/root/output,{container}web/mall/doc:/root/config
+call = apidoc
+#使用dm call iot-apidoc input=demo&out=output来运行,然后可以在宿主机里使用apidoc命令
+param = -i /root/input/doc -o /root/output -c /root/config
 alias = apidoc

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

@@ -9,6 +9,13 @@ subnet = 10.0.0.0/255
 run = master,manager,operater
 add = client,worker
 
+[redis]
+;port = 6379:6379,8888:8888
+memory = 2048M
+volumes = {container}conf/db/redis/redis.conf:/etc/redis.conf
+command = redis
+alias = redis->redis-cli
+
 ;服务注册
 [master]
 image = consul
@@ -47,7 +54,7 @@ volumes = {container}share/lib:/data
 ;操作者,图形界面后台,可以直接访问daemon-manager
 [operater]
 image = admin
-port = 8087:8011,8088:8012
+port = 9091:8011,9092:8012
 
 ;master、manager、operater、crond为主机开启
 ;client、worker为其他机器开启

+ 1 - 0
src/docker/conf/office.conf

@@ -8,6 +8,7 @@ environment = MYSQL_ROOT_PASSWORD=123456
 
 [redis]
 port = 6379:6379
+memory = 4096M
 volumes = {container}conf/db/redis/redis.conf:/etc/redis.conf
 
 [convert]

+ 1 - 0
src/docker/conf/onepage.conf

@@ -2,6 +2,7 @@
 path = {base}
 
 [mysql]
+image = mariadb
 port = 3309:3306
 volumes = {container}conf/db/mysql:/etc/mysql,/mysql/{name}/data:/var/lib/mysql
 environment = MYSQL_ROOT_PASSWORD=123456