Browse Source

Merge pull request #256 from nnnewb/feature/docker-enhancement

[refine] 允许 docker-compose up 直接运行服务而无需修改配置
J_hao104 7 years ago
parent
commit
555483201c
6 changed files with 37 additions and 54 deletions
  1. 20 4
      Config/setting.py
  2. 0 27
      Docker/Dockerfile.develop
  3. 0 14
      Docker/docker-compose.yml
  4. 3 6
      Dockerfile
  5. 14 0
      docker-compose.yml
  6. 0 3
      requirements.txt

+ 20 - 4
Config/setting.py

@@ -12,12 +12,29 @@
 """
 
 # database config
+from os import getenv
+
+
+class ConfigError(BaseException):
+    pass
+
+
+DB_TYPE = getenv('db_type', 'SSDB')
+
+if DB_TYPE == 'SSDB':
+    DB_HOST = getenv('ssdb_host', '127.0.0.1')
+    DB_PORT = getenv('ssdb_port', '6379')
+elif DB_TYPE == 'MONGODB':
+    DB_HOST = getenv('mongodb_host', '127.0.0.1')
+    DB_PORT = getenv('mongodb_host', '27017')
+else:
+    raise ConfigError('Unknown database type, your environment variable `db_type` should be one of SSDB/MONGODB.')
 
 DATABASES = {
     "default": {
-        "TYPE": "SSDB",  # TYPE SSDB/MONGODB if use redis, only modify the host port, the type should be SSDB
-        "HOST": "127.0.0.1",
-        "PORT": 8888,
+        "TYPE": DB_TYPE,  # TYPE SSDB/MONGODB if use redis, only modify the host port, the type should be SSDB
+        "HOST": DB_HOST,
+        "PORT": DB_PORT,
         "NAME": "proxy",
         "PASSWORD": ""
 
@@ -45,7 +62,6 @@ PROXY_GETTER = [
     # "freeProxyWallThird"
 ]
 
-
 # # API config http://127.0.0.1:5010
 
 SERVER_API = {

+ 0 - 27
Docker/Dockerfile.develop

@@ -1,27 +0,0 @@
-FROM python:3.6
-WORKDIR /usr/src/app
-COPY . .
-ENV DEBIAN_FRONTEND noninteractive
-ENV TZ Asia/Shanghai
-
-RUN apt-get update
-RUN apt-get install vim -y
-
-RUN apt-get install -y redis-server
-RUN sed -i 's/^\(bind .*\)$/# \1/' /etc/redis/redis.conf \
-    && sed -i 's/^\(databases .*\)$/databases 1/' /etc/redis/redis.conf \
-    && sed -i 's/^\(daemonize .*\)$/daemonize yes/' /etc/redis/redis.conf
-#    && sed -i 's/^\(dir .*\)$/# \1\ndir \/data/' /etc/redis/redis.conf  \
-#    && sed -i 's/^\(logfile .*\)$/# \1/' /etc/redis/redis.conf
-
-RUN pip install --no-cache-dir -r requirements.txt
-
-
-RUN echo "# ! /bin/sh " > run.sh \
-    && echo "redis-server /etc/redis/redis.conf&" >> run.sh \
-	&& echo "cd Run" >> run.sh \
-	&& echo "python main.py" >> run.sh  \
-	&& chmod 777 run.sh
-
-EXPOSE 5010
-CMD [ "sh", "run.sh" ]

+ 0 - 14
Docker/docker-compose.yml

@@ -1,14 +0,0 @@
-version: '2'
-services:
-  proxy_pool:
-    volumes:
-     - ..:/usr/src/app
-    ports:
-     - "5010:5010"
-    links:
-     - proxy_redis
-    image: "proxy_pool"
-  proxy_redis:
-    ports:
-     - "6379:6379"
-    image: "redis"

+ 3 - 6
Docker/Dockerfile → Dockerfile

@@ -1,13 +1,10 @@
 FROM python:3.6
-WORKDIR /usr/src/app
-COPY . .
-
 ENV DEBIAN_FRONTEND noninteractive
 ENV TZ Asia/Shanghai
-
+WORKDIR /usr/src/app
+COPY ./requirements.txt .
 RUN pip install --no-cache-dir -r requirements.txt
-
+COPY . .
 EXPOSE 5010
-
 WORKDIR /usr/src/app/
 CMD [ "python", "Run/main.py" ]

+ 14 - 0
docker-compose.yml

@@ -0,0 +1,14 @@
+version: '2'
+services:
+  proxy_pool:
+    build: .
+    ports:
+      - "5010:5010"
+    links:
+      - proxy_redis
+    environment:
+      db_type: SSDB
+      ssdb_host: proxy_redis
+      ssdb_port: 6379
+  proxy_redis:
+    image: "redis"

+ 0 - 3
requirements.txt

@@ -3,8 +3,5 @@ werkzeug==0.11.15
 Flask==0.12
 requests==2.20.0
 lxml==3.7.2
-
 pymongo
 redis
-
-