dever 6 anos atrás
pai
commit
ef2e91a252

+ 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!'

+ 55 - 0
src/daemon.py

@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# 用于定时运行容器
+import time
+import subprocess
+import os
+import pprint
+from gevent import monkey; monkey.patch_socket()
+import gevent
+timeSleep = 15
+
+def redis():
+        import redis
+        host = '0.0.0.0'
+        port = 6379
+        pool = redis.ConnectionPool(host=host, port=int(port))
+        return redis.Redis(connection_pool=pool)
+
+def command(file):
+        return 'dm call office-convert_call id=' + file
+
+def popen(command, bg=False):
+        string = command
+        if bg == True:
+                command = command + ' &'
+
+        print command
+        process = os.popen(command)
+        output = process.read()
+        process.close()
+        print output
+        return output
+
+# 文档转换
+def convert():
+        r = redis()
+        c = 'office_file'
+        i = 0
+        while 1:
+                file = r.lpop(c)
+                if file:
+                        g = command(file)
+                        popen(g, False)
+                i = i+1
+                if i >= 10:
+                        time.sleep(timeSleep)
+                        i = 0
+
+def handle():
+	gevent.joinall([
+		gevent.spawn(git),
+		#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

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