Commit 2397605e6d9f6135e165d6dda78bc0696c7289ed

Authored by João Vitor Rebouças
1 parent f0568767
Exists in coppe

Adicionando Dockerfile e modificações feitas pela coppe

Dockerfile
1 1 FROM ubuntu:14.04
2 2 MAINTAINER Jonathan Brilhante
3   -#USER root
4 3  
5   -#Dependencies installation - RabbitMQ / Graylog / Nodejs
  4 +COPY ./core/translator.py /home/vlibras/translator.py
  5 +COPY ./core/renderer.py /home/vlibras/renderer.py
  6 +COPY ./core/indexer.py /home/vlibras/indexer.py
  7 +COPY ./core/PikaManager.py /home/vlibras/PikaManager.py
  8 +COPY ./core/processManager.py /home/vlibras/processManager.py
  9 +COPY ./core/logger.py /home/vlibras/logger.py
  10 +COPY ./core/Trie.py /home/vlibras/Trie.py
6 11  
7   -#Packages updates
8   -RUN apt-get -y update
9   -RUN apt-get -y upgrade
10   -RUN apt-get -y update
  12 +COPY ./fonts/ /home/vlibras/fonts/
11 13  
12   -#Install necessary packages
13   -RUN apt-get install -y build-essential libssl-dev sudo curl wget
  14 +COPY ./translate-api/ /home/vlibras/translate-api/
  15 +COPY ./bundles/ /home/vlibras/bundles/
14 16  
15   -#RUN apt-get install default-jdk -y
  17 +COPY ./vlibras-translate/ /home/vlibras/vlibras-translate/
  18 +COPY ./vlibras-libs/ /home/vlibras/vlibras-libs/
  19 +COPY ./unityVideo/ /home/vlibras/unityVideo/
16 20  
17   -#Install Nodejs
18   -RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
19   -RUN apt-get install -y nodejs
20   -
21   -#Install python packages
22   -RUN apt-get install -y python-setuptools
23   -RUN easy_install pip
24   -
25   -#Install python and python lib for RabbitMQ
26   -RUN apt-get install -y python
27   -RUN pip install pika
28   -
29   -#Install Graylog
30   -RUN pip install graypy
31   -RUN pip install graypy[amqp]
32   -
33   -#Install aditional packages
34   -RUN apt-get install -y pkg-config libfreetype6-dev libpng-dev xvfb
35   -RUN apt-get install -y python-yaml libgomp1 python-numpy python-pyfits python-matplotlib idle
36   -RUN pip install nltk==3.0.5 nltk_tgrep --upgrade
37   -RUN pip install pysrt ffmpy pyvirtualdisplay
38   -RUN apt-get install -y software-properties-common
39   -
40   -#Install FFmpeg
41   -RUN add-apt-repository ppa:mc3man/trusty-media
42   -RUN apt-get -y update
43   -RUN apt-get install -y ffmpeg gstreamer0.10-ffmpeg
44   -
45   -WORKDIR /root/
46   -RUN mkdir -p ./storage/libras
47   -
48   -#Copy workers to container
49   -COPY ./core/translator.py /root/translator.py
50   -COPY ./core/renderer.py /root/renderer.py
51   -COPY ./core/indexer.py /root/indexer.py
52   -COPY ./core/PikaManager.py /root/PikaManager.py
53   -COPY ./core/processManager.py /root/processManager.py
54   -COPY ./core/logger.py /root/logger.py
55   -COPY ./core/Trie.py /root/Trie.py
56   -
57   -COPY ./fonts/ /root/fonts/
58   -
59   -COPY ./translate-api/ /root/translate-api/
60   -COPY ./bundles/ /root/bundles/
61   -
62   -COPY ./vlibras-translate/ /root/vlibras-translate/
63   -COPY ./vlibras-libs/ /root/vlibras-libs/
64   -COPY ./unityVideo/ /root/unityVideo/
65   -
66   -#Workers environment variables
67   -ENV VLIBRAS_VIDEO_CREATOR="/root/unityVideo/videoCreator.x86_64"
68   -ENV VLIBRAS_VIDEO_LIBRAS="/root/storage/libras"
69   -ENV VLIBRAS_VIDEO_SCREENS="/root/storage/frames"
70   -ENV SIGNS_VLIBRAS="/root/bundles"
71   -ENV TEXT_FONTS="/root/fonts/FreeSans.ttf"
  21 +ENV VLIBRAS_VIDEO_CREATOR="/home/vlibras/unityVideo/videoCreator.x86_64"
  22 +ENV VLIBRAS_VIDEO_LIBRAS="/home/vlibras/storage/libras"
  23 +ENV VLIBRAS_VIDEO_SCREENS="/home/vlibras/storage/frames"
  24 +ENV SIGNS_VLIBRAS="/home/vlibras/bundles"
  25 +ENV TEXT_FONTS="/home/vlibras/fonts/FreeSans.ttf"
72 26  
73 27 #Translator environment variables
74   -ENV HUNPOS_TAGGER="/root/vlibras-libs/aelius/bin/hunpos-tag"
75   -ENV AELIUS_DATA="/root/vlibras-libs/aelius/aelius_data"
76   -ENV TRANSLATE_DATA="/root/vlibras-translate/data"
77   -ENV NLTK_DATA="/root/vlibras-libs/aelius/nltk_data"
78   -ENV PYTHONPATH=":/root/vlibras-libs/aelius:/root/vlibras-translate/src:/root/vlibras-libs/aelius:/root/vlibras-translate/src"
79   -
80   -#Portas de comunicacao do container
81   -WORKDIR /root/translate-api/
82   -RUN npm i
83   -
84   -#Comando de entrada quando inicializado
85   -ENTRYPOINT ( sleep 1m) ; npm start & python /root/processManager.py
  28 +ENV HUNPOS_TAGGER="/home/vlibras/vlibras-libs/aelius/bin/hunpos-tag"
  29 +ENV AELIUS_DATA="/home/vlibras/vlibras-libs/aelius/aelius_data"
  30 +ENV TRANSLATE_DATA="/home/vlibras/vlibras-translate/data"
  31 +ENV NLTK_DATA="/home/vlibras/vlibras-libs/aelius/nltk_data"
  32 +ENV PYTHONPATH=":/home/vlibras/vlibras-libs/aelius:/home/vlibras/vlibras-translate/src:/home/vlibras/vlibras-libs/aelius:/home/vlibras/vlibras-translate/src"
  33 +
  34 +RUN apt-get update -y && \
  35 + apt-get install -y sudo curl wget software-properties-common && \
  36 + curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
  37 + add-apt-repository ppa:mc3man/trusty-media && \
  38 + apt-get -y update && \
  39 + apt-get install -y pkg-config libfreetype6-dev libpng-dev xvfb build-essential libssl-dev nodejs python-pip python-yaml libgomp1 python-numpy python-pyfits python-matplotlib idle ffmpeg gstreamer0.10-ffmpeg && \
  40 + pip install nltk==3.0.5 nltk_tgrep --upgrade && \
  41 + pip install pysrt ffmpy pyvirtualdisplay pika && \
  42 + groupadd -r vlibras && useradd -r -g vlibras vlibras && \
  43 + mkdir -p /home/vlibras/storage/libras
  44 +
  45 +WORKDIR /home/vlibras/translate-api/
  46 +
  47 +COPY ./docker-entrypoint.sh /
  48 +
  49 +RUN npm i && \
  50 + mkdir -p /home/vlibras/translate-api/logs && \
  51 + chown -R vlibras. /home/vlibras && \
  52 + chmod +x /docker-entrypoint.sh && \
  53 + mkdir -p /storage && \
  54 + chown -R vlibras. /storage
  55 +
  56 +USER vlibras
  57 +
  58 +VOLUME ["/home/vlibras/translate-api/logs"]
  59 +VOLUME ["/home/vlibras/storage"]
  60 +
  61 +EXPOSE 8080
  62 +
  63 +ENTRYPOINT ["/docker-entrypoint.sh"]
... ...
core/processManager.py
... ... @@ -16,7 +16,7 @@ def signalHandler(signal, frame):
16 16  
17 17 def spawnRenderer():
18 18 while KEEP_RUNNING:
19   - proc = subprocess.Popen(["/root/renderer.py"], shell=True, stdout=subprocess.PIPE)
  19 + proc = subprocess.Popen(["/home/vlibras/renderer.py"], shell=True, stdout=subprocess.PIPE)
20 20 print("Process RENDERER PID: " + str(proc.pid))
21 21 try:
22 22 stdoutdata, stderrdata = proc.communicate()
... ... @@ -26,7 +26,7 @@ def spawnRenderer():
26 26  
27 27 def spawnTranslator():
28 28 while KEEP_RUNNING:
29   - proc = subprocess.Popen(["/root/translator.py"], shell=True, stdout=subprocess.PIPE)
  29 + proc = subprocess.Popen(["/home/vlibras/translator.py"], shell=True, stdout=subprocess.PIPE)
30 30 print("Process TRANSLATOR PID: " + str(proc.pid))
31 31 try:
32 32 stdoutdata, stderrdata = proc.communicate()
... ... @@ -36,7 +36,7 @@ def spawnTranslator():
36 36  
37 37 def spawnIndexer():
38 38 while KEEP_RUNNING:
39   - proc = subprocess.Popen(["/root/indexer.py"], shell=True, stdout=subprocess.PIPE)
  39 + proc = subprocess.Popen(["/home/vlibras/indexer.py"], shell=True, stdout=subprocess.PIPE)
40 40 print("Process INDEXER PID: " + str(proc.pid))
41 41 try:
42 42 stdoutdata, stderrdata = proc.communicate()
... ...
docker-compose.yml
1 1 version: '2'
2   -
  2 +volumes:
  3 + tradutor-rabbitmq:
  4 + external: true
  5 + driver: 'null'
  6 + core_db:
  7 + external: true
  8 + driver: 'null'
  9 + tradutor-bd:
  10 + external: true
  11 + driver: 'null'
  12 + tradutor_logs:
  13 + external: true
  14 + driver: 'null'
3 15 services:
4   -
5 16 mongo:
6 17 image: mongo:3.0.4
7 18 volumes:
8   - - /data/db
9   - ports:
10   - - "27017"
11   -
  19 + - tradutor-bd:/data/db
12 20 rabbit:
13   - image: "rabbitmq:3-management"
14   - ports:
15   - - "15672"
16   - - "5672"
  21 + image: rabbitmq:3-management
17 22 volumes:
18   - - ./rabbitmq:/var/lib/rabbitmq
19   -
  23 + - tradutor-rabbitmq:/var/lib/rabbitmq
20 24 api:
21   - build: .
22   - links:
23   - - mongo
24   - - rabbit
25   - ports:
26   - - "80:80"
  25 + image: hub.docker.planejamento.gov.br/vlibras/tradutor:coppe
27 26 volumes:
28   - - core_db:/storage/
29   - restart: always
  27 + - core_db:/home/vlibras/storage/
  28 + - tradutor_logs:/home/vlibras/translate-api/logs
  29 + links:
  30 + - rabbit:rabbit
  31 + - mongo:mongo
  32 + labels:
  33 + io.rancher.container.pull_image: always
30 34  
31   -volumes:
32   - core_db:
... ...
docker-entrypoint.sh 0 → 100755
... ... @@ -0,0 +1,4 @@
  1 +#!/bin/bash
  2 +
  3 +sleep 30 && python /home/vlibras/processManager.py &
  4 +exec /usr/bin/npm start 2>&1 | tee /home/vlibras/translate-api/logs/$HOSTNAME-out.log
... ...
translate-api/bin/www
... ... @@ -9,7 +9,7 @@ var http = require('http')
9 9 /**
10 10 * Define the port and store in Express.
11 11 */
12   -const PORT = 80;
  12 +const PORT = 8080;
13 13 app.set('port', PORT);
14 14  
15 15 /**
... ...