瀏覽代碼

update deploy

Zhang Li 2 年之前
父節點
當前提交
e89a14a7a6
共有 4 個文件被更改,包括 56 次插入54 次删除
  1. 41 47
      Dockerfile
  2. 6 6
      docker-compose.yml
  3. 2 1
      environment.yml
  4. 7 0
      testing/ocr_test.py

+ 41 - 47
Dockerfile

@@ -1,15 +1,12 @@
-FROM  nvidia/cuda:10.2-cudnn7-devel AS builder
 #FROM nvidia/cuda:10.2-runtime-ubuntu18.04 AS builder
-#FROM  ubuntu:18.04 AS builder
-
-
-
+FROM nvidia/cuda:11.2.0-cudnn8-devel-ubuntu18.04 AS builder
 RUN sed -i 's#archive.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list  \
     && sed -i 's#security.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list
 
 ENV LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LC_ALL=zh_CN.UTF-8 DEBIAN_FRONTEND=noninteractive
 
 RUN rm -rf  /etc/apt/sources.list.d/  && apt update
+
 RUN apt-get update && apt-get install -y --no-install-recommends \
     supervisor \
     iputils-ping \
@@ -39,10 +36,8 @@ RUN locale-gen zh_CN.UTF-8
 RUN dpkg-reconfigure locales
 
 
-
 CMD ["supervisord", "-n"]
 
-
 FROM builder as builder1
 
 ENV PYTHON_VERSION 3
@@ -58,50 +53,11 @@ RUN conda install mamba -n base -c conda-forge
 RUN ln /opt/conda/bin/mamba /usr/local/bin/mamba && mamba init zsh
 
 
-#FROM builder as builder1
-#
-#RUN mkdir /var/run/sshd
-#RUN echo 'root:root' | chpasswd
-#RUN sed -i 's/.*PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
-## SSH login fix. Otherwise user is kicked off after login
-#RUN sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd
-#
-#RUN echo "\
-#[program:sshd] \n\
-#command=/usr/sbin/sshd -D\n\
-#autorestart=True\n\
-#autostart=True\n\
-#redirect_stderr = true\n\
-#" > /etc/supervisor/conf.d/sshd.conf
-#
-#EXPOSE 22
-
-
-# RUN mamba install -y jupyterlab -n base && mamba init zsh
-# RUN /opt/conda/bin/jupyter notebook --generate-config && \
-#     echo "c.NotebookApp.password='argon2:\$argon2id\$v=19\$m=10240,t=10,p=8\$+zIUCF9Uk2FiCHlV8njX5A\$I5Mm/64DORArcXYTXWRVng'">>/root/.jupyter/jupyter_notebook_config.py
-
-
-# RUN mkdir -p /data && echo "\
-# [program:jupyter]\n\
-# directory=/data\n\
-# command=/opt/conda/bin/jupyter lab --ip 0.0.0.0 --port 8888 --allow-root --no-browser \n\
-# autorestart=true\n\
-# startretries=0\n\
-# redirect_stderr=true\n\
-# stdout_logfile=/dev/stdout\n\
-# stdout_logfile_maxbytes=0\n\
-# " > /etc/supervisor/conf.d/jupyter.conf
-
-# EXPOSE 8888
-
-
 FROM builder1 as builder2
 
 WORKDIR /workspace
-RUN mamba update -n base -c defaults conda -y
 ADD environment.yml /environment.yml
-RUN mamba env create -f /environment.yml
+RUN mamba update -n base -c defaults conda -y && mamba env create -f /environment.yml && rm -rf /root/.cache
 
 # RUN /opt/conda/envs/py38/bin/python -m ipykernel install --name py38 --display-name "py38"
 # RUN echo "c.MultiKernelManager.default_kernel_name = 'py38'">>/root/.jupyter/jupyter_notebook_config.py
@@ -119,3 +75,41 @@ stdout_logfile_maxbytes=0\n\
 Add . /workspace
 EXPOSE 8080
 
+FROM builder2 as builder3
+
+RUN apt-get update && apt-get install -y --no-install-recommends openssh-server && rm -rf /var/lib/apt/lists/*
+RUN mkdir /var/run/sshd
+RUN echo 'root:root' | chpasswd
+RUN sed -i 's/.*PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
+# SSH login fix. Otherwise user is kicked off after login
+RUN sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd
+
+RUN echo "\
+[program:sshd] \n\
+command=/usr/sbin/sshd -D\n\
+autorestart=True\n\
+autostart=True\n\
+redirect_stderr = true\n\
+" > /etc/supervisor/conf.d/sshd.conf
+
+EXPOSE 22
+
+
+
+# RUN mamba install -y jupyterlab -n base && mamba init zsh
+# RUN /opt/conda/bin/jupyter notebook --generate-config && \
+#     echo "c.NotebookApp.password='argon2:\$argon2id\$v=19\$m=10240,t=10,p=8\$+zIUCF9Uk2FiCHlV8njX5A\$I5Mm/64DORArcXYTXWRVng'">>/root/.jupyter/jupyter_notebook_config.py
+
+
+# RUN mkdir -p /data && echo "\
+# [program:jupyter]\n\
+# directory=/data\n\
+# command=/opt/conda/bin/jupyter lab --ip 0.0.0.0 --port 8888 --allow-root --no-browser \n\
+# autorestart=true\n\
+# startretries=0\n\
+# redirect_stderr=true\n\
+# stdout_logfile=/dev/stdout\n\
+# stdout_logfile_maxbytes=0\n\
+# " > /etc/supervisor/conf.d/jupyter.conf
+
+# EXPOSE 8888

+ 6 - 6
docker-compose.yml

@@ -4,7 +4,7 @@ services:
     hostname: idcard
     container_name: idcard
     restart: always
-    image: idcard:v1.0-gpu
+    image: idcard:gpu
     privileged: true
     ipc: host
     tty: true
@@ -14,8 +14,8 @@ services:
       - '18222:22'
     volumes:
       - ./:/workspace
-#    deploy:
-#      resources:
-#        reservations:
-#          devices:
-#            - capabilities: [gpu]
+    deploy:
+      resources:
+        reservations:
+          devices:
+            - capabilities: [gpu]

+ 2 - 1
environment.yml

@@ -11,7 +11,6 @@ dependencies:
       - cmake
       - opencv-python
       - cython
-      - paddlepaddle-gpu # 如果不是gpu,使用paddlepaddle
       - paddleocr
       - paddlehub
       - fastapi
@@ -22,4 +21,6 @@ dependencies:
       - requests
       - cpca
       - -i https://mirror.baidu.com/pypi/simple
+      - paddlepaddle-gpu==2.3.0.post112
+      - -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
 prefix: /opt/conda/envs/py38

+ 7 - 0
testing/ocr_test.py

@@ -4,6 +4,7 @@ import requests
 
 url = 'http://localhost:8080'
 
+
 def send_request(image_path):
     with open(image_path, 'rb') as f:
         img_str: str = base64.encodebytes(f.read()).decode('utf-8')
@@ -20,3 +21,9 @@ class TestIdCardOcr(unittest.TestCase):
         r = send_request(image_path)
         self.assertEqual(r['status'], '000', 'status case error')
         self.assertEqual(r['result']['orientation'], 2, 'orientation case error')
+
+    def test_front_90(self):
+        image_path = './images/front-90.png'
+        r = send_request(image_path)
+        self.assertEqual(r['status'], '000', 'status case error')
+        self.assertEqual(r['result']['orientation'], 1, 'orientation case error')