提交 c0b2dc096b6fec6fed3b235ad55e134622e75eb1

作者 nheweijun
1 个父辈 3bb11cd6

2022.02.14 保存合并

@@ -11,5 +11,6 @@ RUN apt-get install apache2 -y @@ -11,5 +11,6 @@ RUN apt-get install apache2 -y
11 11
12 COPY --from=dci/dmapserver:build-dev /usr/local /usr/local 12 COPY --from=dci/dmapserver:build-dev /usr/local /usr/local
13 COPY --from=dci/dmapserver:build-dev /usr/lib/apache2/modules /usr/lib/apache2/modules 13 COPY --from=dci/dmapserver:build-dev /usr/lib/apache2/modules /usr/lib/apache2/modules
  14 +CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
14 15
15 16
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 5
6 6
7 from ..models import ServiceCatalog,db,Service,ServiceEngine 7 from ..models import ServiceCatalog,db,Service,ServiceEngine
8 - 8 +from app.util.component.StructurePrint import StructurePrint
9 from app.util.component.ApiTemplate import ApiTemplate 9 from app.util.component.ApiTemplate import ApiTemplate
10 from app.util.component.ModelVisitor import ModelVisitor 10 from app.util.component.ModelVisitor import ModelVisitor
11 import requests 11 import requests
@@ -25,12 +25,15 @@ class Api(ApiTemplate): @@ -25,12 +25,15 @@ class Api(ApiTemplate):
25 image_engines = ServiceEngine.query.filter_by(type="ImageServer").all() 25 image_engines = ServiceEngine.query.filter_by(type="ImageServer").all()
26 image_services = [] 26 image_services = []
27 for ie in image_engines: 27 for ie in image_engines:
28 - url = "{}/API/Service/List".format(ie.url)  
29 - response:requests.Response = requests.post(url,{"page_size":1000})  
30 - if not response.json().get("result"):  
31 - raise Exception("获取影像服务List失败!")  
32 - else:  
33 - image_services.extend(response.json()["data"]["list"]) 28 + try:
  29 + url = "{}/API/Service/List".format(ie.url)
  30 + response:requests.Response = requests.post(url,{"page_size":1000})
  31 + if not response.json().get("result"):
  32 + raise Exception("获取影像服务List失败!")
  33 + else:
  34 + image_services.extend(response.json()["data"]["list"])
  35 + except:
  36 + StructurePrint().print("{}访问失败".format(ie.url))
34 37
35 for cata in catalogs: 38 for cata in catalogs:
36 catalog_guids = [c.guid for c in ServiceCatalog.query.filter(ServiceCatalog.path.like("%" + cata.guid + "%")).all()] 39 catalog_guids = [c.guid for c in ServiceCatalog.query.filter(ServiceCatalog.path.like("%" + cata.guid + "%")).all()]
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 from ..models import ServiceCatalog,Service,ServiceEngine 7 from ..models import ServiceCatalog,Service,ServiceEngine
8 from app.util.component.ApiTemplate import ApiTemplate 8 from app.util.component.ApiTemplate import ApiTemplate
9 import requests 9 import requests
10 - 10 +from app.util.component.StructurePrint import StructurePrint
11 class Api(ApiTemplate): 11 class Api(ApiTemplate):
12 api_name = "目录树" 12 api_name = "目录树"
13 def process(self): 13 def process(self):
@@ -24,13 +24,15 @@ class Api(ApiTemplate): @@ -24,13 +24,15 @@ class Api(ApiTemplate):
24 image_engines = ServiceEngine.query.filter_by(type="ImageServer").all() 24 image_engines = ServiceEngine.query.filter_by(type="ImageServer").all()
25 image_services = [] 25 image_services = []
26 for ie in image_engines: 26 for ie in image_engines:
27 - url = "{}/API/Service/List".format(ie.url)  
28 - response:requests.Response = requests.post(url,{"page_size":1000})  
29 - if not response.json().get("result"):  
30 - raise Exception("获取影像服务List失败!")  
31 - else:  
32 - image_services.extend(response.json()["data"]["list"])  
33 - 27 + try:
  28 + url = "{}/API/Service/List".format(ie.url)
  29 + response:requests.Response = requests.post(url,{"page_size":1000})
  30 + if not response.json().get("result"):
  31 + raise Exception("获取影像服务List失败!")
  32 + else:
  33 + image_services.extend(response.json()["data"]["list"])
  34 + except:
  35 + StructurePrint().print("{}访问失败".format(ie.url))
34 tree_origin = [] 36 tree_origin = []
35 for cata in catalogs: 37 for cata in catalogs:
36 38
@@ -8,6 +8,7 @@ from ..models import Service,ServiceCatalog,db,ServiceEngine @@ -8,6 +8,7 @@ from ..models import Service,ServiceCatalog,db,ServiceEngine
8 import requests 8 import requests
9 9
10 from app.util.component.ApiTemplate import ApiTemplate 10 from app.util.component.ApiTemplate import ApiTemplate
  11 +from app.util.component.StructurePrint import StructurePrint
11 class Api(ApiTemplate): 12 class Api(ApiTemplate):
12 api_name = "目录" 13 api_name = "目录"
13 def process(self): 14 def process(self):
@@ -24,12 +25,15 @@ class Api(ApiTemplate): @@ -24,12 +25,15 @@ class Api(ApiTemplate):
24 image_engines = ServiceEngine.query.filter_by(type="ImageServer").all() 25 image_engines = ServiceEngine.query.filter_by(type="ImageServer").all()
25 image_services = [] 26 image_services = []
26 for ie in image_engines: 27 for ie in image_engines:
27 - url = "{}/API/Service/List".format(ie.url)  
28 - response:requests.Response = requests.post(url,{"page_size":1000})  
29 - if not response.json().get("result"):  
30 - raise Exception("获取影像服务List失败!")  
31 - else:  
32 - image_services.extend(response.json()["data"]["list"]) 28 + try:
  29 + url = "{}/API/Service/List".format(ie.url)
  30 + response:requests.Response = requests.post(url,{"page_size":1000})
  31 + if not response.json().get("result"):
  32 + raise Exception("获取影像服务List失败!")
  33 + else:
  34 + image_services.extend(response.json()["data"]["list"])
  35 + except:
  36 + StructurePrint().print("{}访问失败".format(ie.url))
33 37
34 for cata in catalogs: 38 for cata in catalogs:
35 catalog_guids = [c.guid for c in ServiceCatalog.query.filter(ServiceCatalog.path.like("%" + cata.guid + "%")).all()] 39 catalog_guids = [c.guid for c in ServiceCatalog.query.filter(ServiceCatalog.path.like("%" + cata.guid + "%")).all()]
@@ -14,6 +14,7 @@ import datetime @@ -14,6 +14,7 @@ import datetime
14 import requests 14 import requests
15 from app.util.component.TaskController import TaskController 15 from app.util.component.TaskController import TaskController
16 from app.util.component.TaskWriter import TaskWriter 16 from app.util.component.TaskWriter import TaskWriter
  17 +
17 class Api(ApiTemplate): 18 class Api(ApiTemplate):
18 19
19 api_name = "创建影像金字塔" 20 api_name = "创建影像金字塔"
@@ -29,6 +30,8 @@ class Api(ApiTemplate): @@ -29,6 +30,8 @@ class Api(ApiTemplate):
29 pyramid_process = multiprocessing.Process(target=self.task, args=(task_guid,self.para)) 30 pyramid_process = multiprocessing.Process(target=self.task, args=(task_guid,self.para))
30 pyramid_process.start() 31 pyramid_process.start()
31 32
  33 +
  34 +
32 task = Task(guid=task_guid, 35 task = Task(guid=task_guid,
33 name="{}构建影像金字塔".format(self.para.get("alias")), 36 name="{}构建影像金字塔".format(self.para.get("alias")),
34 create_time=datetime.datetime.now(), 37 create_time=datetime.datetime.now(),
@@ -60,8 +63,8 @@ class Api(ApiTemplate): @@ -60,8 +63,8 @@ class Api(ApiTemplate):
60 task_writer.update_task({"state":2,"update_time":datetime.datetime.now(),"process" : "创建中"}) 63 task_writer.update_task({"state":2,"update_time":datetime.datetime.now(),"process" : "创建中"})
61 task_writer.update_process("开始创建...") 64 task_writer.update_process("开始创建...")
62 65
63 - url = "{}/API/Service/Image/BuildPyramid".format(para.get("url"))  
64 - 66 + url = "{}/API/Image/BuildPyramid".format(para.get("url"))
  67 + StructurePrint().print(url)
65 68
66 self.para["from"] = configure.deploy_ip_host 69 self.para["from"] = configure.deploy_ip_host
67 self.para["task_guid"] = task_guid 70 self.para["task_guid"] = task_guid
@@ -69,7 +72,7 @@ class Api(ApiTemplate): @@ -69,7 +72,7 @@ class Api(ApiTemplate):
69 response:requests.Response = requests.post(url,data=self.para) 72 response:requests.Response = requests.post(url,data=self.para)
70 73
71 if not response.json().get("result"): 74 if not response.json().get("result"):
72 - raise Exception("由于{},影像服务修改失败!".format(response.json().get("msg"))) 75 + raise Exception("由于{},提交任务失败!".format(response.json().get("msg")))
73 else: 76 else:
74 task_writer.update_task({"task_pid": int(response.json().get("data"))}) 77 task_writer.update_task({"task_pid": int(response.json().get("data"))})
75 except Exception as e: 78 except Exception as e:
@@ -86,7 +89,6 @@ class Api(ApiTemplate): @@ -86,7 +89,6 @@ class Api(ApiTemplate):
86 except Exception as e: 89 except Exception as e:
87 StructurePrint().print(e.__str__()) 90 StructurePrint().print(e.__str__())
88 91
89 -  
90 api_doc = { 92 api_doc = {
91 "tags": ["影像服务接口"], 93 "tags": ["影像服务接口"],
92 "parameters": [ 94 "parameters": [
@@ -18,7 +18,7 @@ class Api(ApiTemplate): @@ -18,7 +18,7 @@ class Api(ApiTemplate):
18 res = {} 18 res = {}
19 try: 19 try:
20 20
21 - user_req: requests.Response = requests.post("{}/ImageServer/API/Service/Info".format(self.para.get("url")), 21 + user_req: requests.Response = requests.post("{}/API/Service/Info".format(self.para.get("url")),
22 data={"guid":self.para.get("guid")}) 22 data={"guid":self.para.get("guid")})
23 23
24 if not user_req.json().get("result"): 24 if not user_req.json().get("result"):
@@ -26,7 +26,7 @@ class Api(ApiTemplate): @@ -26,7 +26,7 @@ class Api(ApiTemplate):
26 # 验证权限 26 # 验证权限
27 UserCheck.verify(user_req.json().get("data").get("service").get("creator")) 27 UserCheck.verify(user_req.json().get("data").get("service").get("creator"))
28 28
29 - url = "{}/ImageServer/API/Service/Delete".format(self.para.get("url")) 29 + url = "{}/API/Service/Delete".format(self.para.get("url"))
30 response:requests.Response = requests.post(url,data=self.para) 30 response:requests.Response = requests.post(url,data=self.para)
31 31
32 if not response.json().get("result"): 32 if not response.json().get("result"):
@@ -49,7 +49,7 @@ class Api(ApiTemplate): @@ -49,7 +49,7 @@ class Api(ApiTemplate):
49 "capabilities":2, 49 "capabilities":2,
50 "project":self.para.get("project")} 50 "project":self.para.get("project")}
51 51
52 - map_service_register_url = "{}/dmap/api/manager/regservice".format(configure.vector_engine) 52 + map_service_register_url = "{}/dmap/api/manager/regservice".format(configure.dmap_engine)
53 resp: requests.Response = requests.post(map_service_register_url,data=json.dumps(para), 53 resp: requests.Response = requests.post(map_service_register_url,data=json.dumps(para),
54 headers={'Content-Type':'application/json'},timeout=3 54 headers={'Content-Type':'application/json'},timeout=3
55 ) 55 )
@@ -34,7 +34,7 @@ class Api(ApiTemplate): @@ -34,7 +34,7 @@ class Api(ApiTemplate):
34 "capabilities":2, 34 "capabilities":2,
35 "project":self.para.get("project")} 35 "project":self.para.get("project")}
36 36
37 - map_service_register_url = "{}/dmap/api/manager/regservice".format(configure.vector_engine) 37 + map_service_register_url = "{}/dmap/api/manager/regservice".format(configure.dmap_engine)
38 resp: requests.Response = requests.post(map_service_register_url,data=json.dumps(para), 38 resp: requests.Response = requests.post(map_service_register_url,data=json.dumps(para),
39 headers={'Content-Type':'application/json'},timeout=3 39 headers={'Content-Type':'application/json'},timeout=3
40 ) 40 )
@@ -41,7 +41,7 @@ class Api(ApiTemplate): @@ -41,7 +41,7 @@ class Api(ApiTemplate):
41 41
42 elif s_type in [ServiceType.image_service.value]: 42 elif s_type in [ServiceType.image_service.value]:
43 43
44 - edit_url = "{}/ImageServer/API/Service/Info".format(self.para.get("url")) 44 + edit_url = "{}/API/Service/Info".format(self.para.get("url"))
45 response:requests.Response = requests.post(edit_url,self.para) 45 response:requests.Response = requests.post(edit_url,self.para)
46 if not response.json().get("result"): 46 if not response.json().get("result"):
47 raise Exception("查询影像地图失败!") 47 raise Exception("查询影像地图失败!")
@@ -35,13 +35,7 @@ class Api(ApiTemplate): @@ -35,13 +35,7 @@ class Api(ApiTemplate):
35 map_services = MapService.query.all() 35 map_services = MapService.query.all()
36 for ms in map_services: 36 for ms in map_services:
37 para = ModelVisitor.object_to_json(ms) 37 para = ModelVisitor.object_to_json(ms)
38 - para[""]  
39 -  
40 res["data"]["list"].append(para) 38 res["data"]["list"].append(para)
41 -  
42 -  
43 -  
44 -  
45 res["data"]["count"] = len(tile_services)+len(map_services) 39 res["data"]["count"] = len(tile_services)+len(map_services)
46 res["result"] = True 40 res["result"] = True
47 except Exception as e: 41 except Exception as e:
@@ -60,7 +60,7 @@ class Api(ApiTemplate): @@ -60,7 +60,7 @@ class Api(ApiTemplate):
60 "type":"tileserver","capabilities":1 if tile_type == "WMTS" else 16,"project":project_file} 60 "type":"tileserver","capabilities":1 if tile_type == "WMTS" else 16,"project":project_file}
61 61
62 62
63 - tile_service_edit_url = "{}/dmap/api/manager/RegService".format(configure.tile_engine) 63 + tile_service_edit_url = "{}/dmap/api/manager/RegService".format(configure.dmap_engine)
64 64
65 resp: Response = requests.post(tile_service_edit_url,data=json.dumps(para),headers={'Content-Type':'application/json'},timeout=3) 65 resp: Response = requests.post(tile_service_edit_url,data=json.dumps(para),headers={'Content-Type':'application/json'},timeout=3)
66 resp.encoding="utf-8" 66 resp.encoding="utf-8"
@@ -37,7 +37,7 @@ class Api(ApiTemplate): @@ -37,7 +37,7 @@ class Api(ApiTemplate):
37 "capabilities":1 if self.para.get("tile_type") == "WMTS" else 16, 37 "capabilities":1 if self.para.get("tile_type") == "WMTS" else 16,
38 "project":project_file} 38 "project":project_file}
39 39
40 - tile_service_register_url = "{}/dmap/api/manager/RegService".format(configure.tile_engine) 40 + tile_service_register_url = "{}/dmap/api/manager/RegService".format(configure.dmap_engine)
41 resp: Response = requests.post(tile_service_register_url,data=json.dumps(para), 41 resp: Response = requests.post(tile_service_register_url,data=json.dumps(para),
42 headers={'Content-Type':'application/json'},timeout=3 42 headers={'Content-Type':'application/json'},timeout=3
43 ) 43 )
@@ -93,7 +93,7 @@ class Api(ApiTemplate): @@ -93,7 +93,7 @@ class Api(ApiTemplate):
93 93
94 scheme=self.para.get("scheme"), 94 scheme=self.para.get("scheme"),
95 service_guid = service_guid, 95 service_guid = service_guid,
96 - metadata_url = "{}/DMap/Services/{}/MapServer/WMTSServer".format(configure.tile_engine,self.para.get("name")) 96 + metadata_url = "{}/DMap/Services/{}/MapServer/WMTSServer".format(configure.dmap_engine,self.para.get("name"))
97 ) 97 )
98 98
99 service_function = ServiceFunction(guid=service_function_guid, 99 service_function = ServiceFunction(guid=service_function_guid,
@@ -9,10 +9,8 @@ SQLALCHEMY_DATABASE_URI = "postgresql://postgres:chinadci@172.26.60.101:5432/dma @@ -9,10 +9,8 @@ SQLALCHEMY_DATABASE_URI = "postgresql://postgres:chinadci@172.26.60.101:5432/dma
9 #VACUATE_DB_URI = None 9 #VACUATE_DB_URI = None
10 VACUATE_DB_URI = SQLALCHEMY_DATABASE_URI 10 VACUATE_DB_URI = SQLALCHEMY_DATABASE_URI
11 11
12 -#切片引擎  
13 -tile_engine = "http://172.26.99.160:8820"  
14 -#矢量引擎  
15 -vector_engine = "http://172.26.99.160:8820" 12 +#DMap引擎
  13 +dmap_engine = "http://172.26.99.160:8820"
16 14
17 # 固定配置不需要修改 15 # 固定配置不需要修改
18 entry_data_thread = 3 16 entry_data_thread = 3
1 -# coding=utf-8  
2 -import os  
3 -bind='0.0.0.0:8840'  
4 -workers=4  
5 -backlog=2048  
6 -worker_class="gevent"  
7 -#daemon=True  
8 -threads =8  
9 -pidfile='logs/gunicore.pid'  
10 -loglevel='info'  
11 -accesslog='logs/gunicorn.log'  
12 -errorlog='logs/gunicorn.err.log'  
1 -#  
2 -# This is the main Apache HTTP server configuration file. It contains the  
3 -# configuration directives that give the server its instructions.  
4 -# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.  
5 -# In particular, see  
6 -# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>  
7 -# for a discussion of each configuration directive.  
8 -#  
9 -# Do NOT simply read the instructions in here without understanding  
10 -# what they do. They're here only as hints or reminders. If you are unsure  
11 -# consult the online docs. You have been warned.  
12 -#  
13 -# Configuration and logfile names: If the filenames you specify for many  
14 -# of the server's control files begin with "/" (or "drive:/" for Win32), the  
15 -# server will use that explicit path. If the filenames do *not* begin  
16 -# with "/", the value of ServerRoot is prepended -- so 'log/access_log'  
17 -# with ServerRoot set to '/www' will be interpreted by the  
18 -# server as '/www/log/access_log', where as '/log/access_log' will be  
19 -# interpreted as '/log/access_log'.  
20 -  
21 -#  
22 -# ServerRoot: The top of the directory tree under which the server's  
23 -# configuration, error, and log files are kept.  
24 -#  
25 -# Do not add a slash at the end of the directory path. If you point  
26 -# ServerRoot at a non-local disk, be sure to specify a local disk on the  
27 -# Mutex directive, if file-based mutexes are used. If you wish to share the  
28 -# same ServerRoot for multiple httpd daemons, you will need to change at  
29 -# least PidFile.  
30 -#  
31 -ServerRoot "/etc/httpd"  
32 -  
33 -#  
34 -# Listen: Allows you to bind Apache to specific IP addresses and/or  
35 -# ports, instead of the default. See also the <VirtualHost>  
36 -# directive.  
37 -#  
38 -# Change this to Listen on specific IP addresses as shown below to  
39 -# prevent Apache from glomming onto all bound IP addresses.  
40 -#  
41 -#Listen 12.34.56.78:80  
42 -Listen 80  
43 -Listen 81  
44 -  
45 -#  
46 -# Dynamic Shared Object (DSO) Support  
47 -#  
48 -# To be able to use the functionality of a module which was built as a DSO you  
49 -# have to place corresponding `LoadModule' lines at this location so the  
50 -# directives contained in it are actually available _before_ they are used.  
51 -# Statically compiled modules (those listed by `httpd -l') do not need  
52 -# to be loaded here.  
53 -#  
54 -# Example:  
55 -# LoadModule foo_module modules/mod_foo.so  
56 -#  
57 -Include conf.modules.d/*.conf  
58 -  
59 -#  
60 -# If you wish httpd to run as a different user or group, you must run  
61 -# httpd as root initially and it will switch.  
62 -#  
63 -# User/Group: The name (or #number) of the user/group to run httpd as.  
64 -# It is usually good practice to create a dedicated user and group for  
65 -# running httpd, as with most system services.  
66 -#  
67 -User apache  
68 -Group apache  
69 -  
70 -# 'Main' server configuration  
71 -#  
72 -# The directives in this section set up the values used by the 'main'  
73 -# server, which responds to any requests that aren't handled by a  
74 -# <VirtualHost> definition. These values also provide defaults for  
75 -# any <VirtualHost> containers you may define later in the file.  
76 -#  
77 -# All of these directives may appear inside <VirtualHost> containers,  
78 -# in which case these default settings will be overridden for the  
79 -# virtual host being defined.  
80 -#  
81 -  
82 -#  
83 -# ServerAdmin: Your address, where problems with the server should be  
84 -# e-mailed. This address appears on some server-generated pages, such  
85 -# as error documents. e.g. admin@your-domain.com  
86 -#  
87 -ServerAdmin root@localhost  
88 -  
89 -#  
90 -# ServerName gives the name and port that the server uses to identify itself.  
91 -# This can often be determined automatically, but we recommend you specify  
92 -# it explicitly to prevent problems during startup.  
93 -#  
94 -# If your host doesn't have a registered DNS name, enter its IP address here.  
95 -#  
96 -#ServerName www.example.com:80  
97 -  
98 -#  
99 -# Deny access to the entirety of your server's filesystem. You must  
100 -# explicitly permit access to web content directories in other  
101 -# <Directory> blocks below.  
102 -#  
103 -<Directory />  
104 - AllowOverride none  
105 - Require all denied  
106 -</Directory>  
107 -  
108 -#  
109 -# Note that from this point forward you must specifically allow  
110 -# particular features to be enabled - so if something's not working as  
111 -# you might expect, make sure that you have specifically enabled it  
112 -# below.  
113 -#  
114 -  
115 -#  
116 -# DocumentRoot: The directory out of which you will serve your  
117 -# documents. By default, all requests are taken from this directory, but  
118 -# symbolic links and aliases may be used to point to other locations.  
119 -#  
120 -DocumentRoot "/var/www/html"  
121 -  
122 -#  
123 -# Relax access to content within /var/www.  
124 -#  
125 -<Directory "/var/www">  
126 - AllowOverride None  
127 - # Allow open access:  
128 - Require all granted  
129 -</Directory>  
130 -  
131 -# Further relax access to the default document root:  
132 -<Directory "/var/www/html">  
133 - #  
134 - # Possible values for the Options directive are "None", "All",  
135 - # or any combination of:  
136 - # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews  
137 - #  
138 - # Note that "MultiViews" must be named *explicitly* --- "Options All"  
139 - # doesn't give it to you.  
140 - #  
141 - # The Options directive is both complicated and important. Please see  
142 - # http://httpd.apache.org/docs/2.4/mod/core.html#options  
143 - # for more information.  
144 - #  
145 - Options Indexes FollowSymLinks  
146 -  
147 - #  
148 - # AllowOverride controls what directives may be placed in .htaccess files.  
149 - # It can be "All", "None", or any combination of the keywords:  
150 - # Options FileInfo AuthConfig Limit  
151 - #  
152 - AllowOverride None  
153 -  
154 - #  
155 - # Controls who can get stuff from this server.  
156 - #  
157 - Require all granted  
158 -</Directory>  
159 -  
160 -#  
161 -# DirectoryIndex: sets the file that Apache will serve if a directory  
162 -# is requested.  
163 -#  
164 -<IfModule dir_module>  
165 - DirectoryIndex index.html  
166 -</IfModule>  
167 -  
168 -#  
169 -# The following lines prevent .htaccess and .htpasswd files from being  
170 -# viewed by Web clients.  
171 -#  
172 -<Files ".ht*">  
173 - Require all denied  
174 -</Files>  
175 -  
176 -#  
177 -# ErrorLog: The location of the error log file.  
178 -# If you do not specify an ErrorLog directive within a <VirtualHost>  
179 -# container, error messages relating to that virtual host will be  
180 -# logged here. If you *do* define an error logfile for a <VirtualHost>  
181 -# container, that host's errors will be logged there and not here.  
182 -#  
183 -ErrorLog "logs/error_log"  
184 -  
185 -#  
186 -# LogLevel: Control the number of messages logged to the error_log.  
187 -# Possible values include: debug, info, notice, warn, error, crit,  
188 -# alert, emerg.  
189 -#  
190 -LogLevel warn  
191 -  
192 -<IfModule log_config_module>  
193 - #  
194 - # The following directives define some format nicknames for use with  
195 - # a CustomLog directive (see below).  
196 - #  
197 - LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined  
198 - LogFormat "%h %l %u %t \"%r\" %>s %b" common  
199 -  
200 - <IfModule logio_module>  
201 - # You need to enable mod_logio.c to use %I and %O  
202 - LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio  
203 - </IfModule>  
204 -  
205 - #  
206 - # The location and format of the access logfile (Common Logfile Format).  
207 - # If you do not define any access logfiles within a <VirtualHost>  
208 - # container, they will be logged here. Contrariwise, if you *do*  
209 - # define per-<VirtualHost> access logfiles, transactions will be  
210 - # logged therein and *not* in this file.  
211 - #  
212 - #CustomLog "logs/access_log" common  
213 -  
214 - #  
215 - # If you prefer a logfile with access, agent, and referer information  
216 - # (Combined Logfile Format) you can use the following directive.  
217 - #  
218 - CustomLog "logs/access_log" combined  
219 -</IfModule>  
220 -  
221 -<IfModule alias_module>  
222 - #  
223 - # Redirect: Allows you to tell clients about documents that used to  
224 - # exist in your server's namespace, but do not anymore. The client  
225 - # will make a new request for the document at its new location.  
226 - # Example:  
227 - # Redirect permanent /foo http://www.example.com/bar  
228 -  
229 - #  
230 - # Alias: Maps web paths into filesystem paths and is used to  
231 - # access content that does not live under the DocumentRoot.  
232 - # Example:  
233 - # Alias /webpath /full/filesystem/path  
234 - #  
235 - # If you include a trailing / on /webpath then the server will  
236 - # require it to be present in the URL. You will also likely  
237 - # need to provide a <Directory> section to allow access to  
238 - # the filesystem path.  
239 -  
240 - #  
241 - # ScriptAlias: This controls which directories contain server scripts.  
242 - # ScriptAliases are essentially the same as Aliases, except that  
243 - # documents in the target directory are treated as applications and  
244 - # run by the server when requested rather than as documents sent to the  
245 - # client. The same rules about trailing "/" apply to ScriptAlias  
246 - # directives as to Alias.  
247 - #  
248 - ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"  
249 -  
250 -</IfModule>  
251 -  
252 -#  
253 -# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased  
254 -# CGI directory exists, if you have that configured.  
255 -#  
256 -<Directory "/var/www/cgi-bin">  
257 - AllowOverride None  
258 - Options None  
259 - Require all granted  
260 -</Directory>  
261 -  
262 -<IfModule mime_module>  
263 - #  
264 - # TypesConfig points to the file containing the list of mappings from  
265 - # filename extension to MIME-type.  
266 - #  
267 - TypesConfig /etc/mime.types  
268 -  
269 - #  
270 - # AddType allows you to add to or override the MIME configuration  
271 - # file specified in TypesConfig for specific file types.  
272 - #  
273 - #AddType application/x-gzip .tgz  
274 - #  
275 - # AddEncoding allows you to have certain browsers uncompress  
276 - # information on the fly. Note: Not all browsers support this.  
277 - #  
278 - #AddEncoding x-compress .Z  
279 - #AddEncoding x-gzip .gz .tgz  
280 - #  
281 - # If the AddEncoding directives above are commented-out, then you  
282 - # probably should define those extensions to indicate media types:  
283 - #  
284 - AddType application/x-compress .Z  
285 - AddType application/x-gzip .gz .tgz  
286 -  
287 - #  
288 - # AddHandler allows you to map certain file extensions to "handlers":  
289 - # actions unrelated to filetype. These can be either built into the server  
290 - # or added with the Action directive (see below)  
291 - #  
292 - # To use CGI scripts outside of ScriptAliased directories:  
293 - # (You will also need to add "ExecCGI" to the "Options" directive.)  
294 - #  
295 - #AddHandler cgi-script .cgi  
296 -  
297 - # For type maps (negotiated resources):  
298 - #AddHandler type-map var  
299 -  
300 - #  
301 - # Filters allow you to process content before it is sent to the client.  
302 - #  
303 - # To parse .shtml files for server-side includes (SSI):  
304 - # (You will also need to add "Includes" to the "Options" directive.)  
305 - #  
306 - AddType text/html .shtml  
307 - AddOutputFilter INCLUDES .shtml  
308 -</IfModule>  
309 -  
310 -#  
311 -# Specify a default charset for all content served; this enables  
312 -# interpretation of all content as UTF-8 by default. To use the  
313 -# default browser choice (ISO-8859-1), or to allow the META tags  
314 -# in HTML content to override this choice, comment out this  
315 -# directive:  
316 -#  
317 -AddDefaultCharset UTF-8  
318 -  
319 -<IfModule mime_magic_module>  
320 - #  
321 - # The mod_mime_magic module allows the server to use various hints from the  
322 - # contents of the file itself to determine its type. The MIMEMagicFile  
323 - # directive tells the module where the hint definitions are located.  
324 - #  
325 - conf/magic  
326 -</IfModule>  
327 -  
328 -#  
329 -# Customizable error responses come in three flavors:  
330 -# 1) plain text 2) local redirects 3) external redirects  
331 -#  
332 -# Some examples:  
333 -#ErrorDocument 500 "The server made a boo boo."  
334 -#ErrorDocument 404 /missing.html  
335 -#ErrorDocument 404 "/cgi-bin/missing_handler.pl"  
336 -#ErrorDocument 402 http://www.example.com/subscription_info.html  
337 -#  
338 -  
339 -#  
340 -# EnableMMAP and EnableSendfile: On systems that support it,  
341 -# memory-mapping or the sendfile syscall may be used to deliver  
342 -# files. This usually improves server performance, but must  
343 -# be turned off when serving from networked-mounted  
344 -# filesystems or if support for these functions is otherwise  
345 -# broken on your system.  
346 -# Defaults if commented: EnableMMAP On, EnableSendfile Off  
347 -#  
348 -#EnableMMAP off  
349 -EnableSendfile on  
350 -  
351 -# Supplemental configuration  
352 -#  
353 -# Load config files in the "/etc/httpd/conf.d" directory, if any.  
354 - conf.d/*.conf  
355 -  
356 -LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so"  
357 - "/var/gdal"  
358 -  
359 -<VirtualHost *:80>  
360 - dmapmanager processes=4 threads=16 display-name=%{GROUP}  
361 - dmapmanager  
362 - On  
363 - %{GLOBAL}  
364 - / /usr/src/app/run.wsgi  
365 - <Directory /usr/>  
366 - Require all granted  
367 - </Directory>  
368 -</VirtualHost>  
369 -  
370 -<VirtualHost *:81>  
371 - monitormanager processes=1 threads=8 display-name=%{GROUP}  
372 - monitormanager  
373 - %{GLOBAL}  
374 - / /usr/src/app/monitor.wsgi  
375 - <Directory /usr/>  
376 - Require all granted  
377 - </Directory>  
378 -</VirtualHost>  
379 -  
380 -<Directory /usr/>  
381 - Require all granted  
382 -</Directory>  
1 -#! /bin/sh  
2 -dn="dmapmanager"  
3 -#停止容器  
4 -echo "正在关闭容器..."  
5 -docker stop $dn  
6 -docker rm $dn  
7 -  
8 -curPath=$(readlink -f $(dirname $0))  
9 -  
10 -  
11 -#设置日志权限  
12 -chmod -R 777 $curPath  
13 -  
14 -#设置端口  
15 -port=""  
16 -if [ ! -n "$1" ] ;then  
17 -port="8840"  
18 -echo "未设置端口,使用默认8840端口..."  
19 -else  
20 -port=$1  
21 -echo "端口设置为$1 ..."  
22 -fi  
23 -  
24 -port2=""  
25 -if [ ! -n "$2" ] ;then  
26 -port="8841"  
27 -echo "未设置端口2,使用默认8840端口..."  
28 -else  
29 -port2=$2  
30 -echo "端口2设置为$2 ..."  
31 -fi  
32 -  
33 -  
34 -#启动容器和apache  
35 -echo "正在启动容器..."  
36 -set="--privileged=true -e TZ="Asia/Shanghai" --restart=always -e ALLOW_IP_RANGE=0.0.0.0/0"  
37 -docker run -d --name $dn $set -p $port:80 -p $port2:81 -v $curPath/logs/apache.error:/var/log/httpd/error_log -v $curPath:/usr/src/app -v $curPath/httpd.conf:/etc/httpd/conf/httpd.conf dci/dmapmanager:4.1 /usr/sbin/init  
38 -docker exec -d $dn systemctl start httpd  
39 -sleep 5  
40 -curl localhost:$port/release  
41 -curl localhost:$port2  
1 -#! /bin/bash  
2 -dn="dmapmanager"  
3 -#停止容器  
4 -echo "正在关闭容器..."  
5 -docker stop $dn  
6 -docker rm $dn  
7 -curPath=$(readlink -f "$(dirname "$0")")  
8 -#设置端口  
9 -port=""  
10 -if [ ! -n "$1" ] ;then  
11 - port="8840"  
12 - echo "未设置端口,使用默认8840端口..."  
13 -else  
14 - port=$1  
15 - echo "端口设置为$1 ..."  
16 -fi  
17 -docker run -d --name $dn -e TZ="Asia/Shanghai" --restart=always -e ALLOW_IP_RANGE=0.0.0.0/0 -p $port:8840 -v $curPath:/usr/src/app -w /usr/src/app dci/dmapdms:4.0 gunicorn -c gun_conf.py run:app  
18 -# 清除未完成的任务任务  
19 -sleep 5  
20 -curl localhost:$port/release  
@@ -16,7 +16,7 @@ else @@ -16,7 +16,7 @@ else
16 echo "端口设置为$1 ..." 16 echo "端口设置为$1 ..."
17 fi 17 fi
18 18
19 -docker run -d --name $dn -e TZ="Asia/Shanghai" --restart=always -e ALLOW_IP_RANGE=0.0.0.0/0 -p $port:8840 -v $curPath:/usr/src/app -w /usr/src/app dci/dmapserver:build python3 ./run.py 19 +docker run -d --name $dn -e TZ="Asia/Shanghai" --restart=always -e ALLOW_IP_RANGE=0.0.0.0/0 -p $port:8840 -v $curPath:/usr/src/app -w /usr/src/app dci/dmapmanager:4.1 python3 ./run.py
20 # 清除未完成的任务任务 20 # 清除未完成的任务任务
21 sleep 5 21 sleep 5
22 curl localhost:$port/release 22 curl localhost:$port/release
1 -#! /bin/sh  
2 -container_name="dmapmanager"  
3 -#停止容器  
4 -echo "正在关闭容器..."  
5 -docker stop $container_name  
6 -docker rm $container_name  
7 -  
8 -curPath=$(readlink -f $(dirname $0))  
9 -  
10 -  
11 -#设置日志权限  
12 -chmod -R 777 $curPath  
13 -  
14 -#设置端口  
15 -port=""  
16 -if [ ! -n "$1" ] ;then  
17 -port="8840"  
18 -echo "未设置端口,使用默认8840端口..."  
19 -else  
20 -port=$1  
21 -echo "端口设置为$1 ..."  
22 -fi  
23 -  
24 -port2=""  
25 -if [ ! -n "$2" ] ;then  
26 -port="8841"  
27 -echo "未设置端口2,使用默认8840端口..."  
28 -else  
29 -port2=$2  
30 -echo "端口2设置为$2 ..."  
31 -fi  
32 -  
33 -  
34 -#启动容器和apache  
35 -echo "正在启动容器..."  
36 -set="--privileged=true -e TZ="Asia/Shanghai" --restart=always -e ALLOW_IP_RANGE=0.0.0.0/0 -e LAND=C.UTF-8"  
37 -docker run -it -d --name ${container_name} ${set} -p ${port}:81 -p ${port2}:82 -v ${curPath}:/usr/src/app -v ${curPath}/apache2.conf:/etc/apache2/apache2.conf -v ${curPath}/dmapmanager.conf:/etc/apache2/sites-enabled/dmapmanager.conf -v ${curPath}/envvars:/etc/apache2/envvars dci/dmapserver:build  
38 -docker exec -d $container_name service apache2 start  
39 -sleep 5  
40 -curl localhost:$port/release  
41 -curl localhost:$port2  
注册登录 后发表评论