Dockerfile 3.33 KB
FROM ubuntu:14.04
MAINTAINER Jonathan Brilhante
#USER root

#Dependencies installation - RabbitMQ / Graylog / Nodejs

#Packages updates
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get -y update

#Install necessary packages
RUN apt-get install -y build-essential libssl-dev sudo curl wget

#RUN apt-get install default-jdk -y

#Install Nodejs
RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E  bash -
RUN apt-get install -y nodejs

#Install python packages
RUN apt-get install -y python-setuptools
RUN easy_install pip

#Install express.js
RUN npm install -g express-generator

#Install RabbitMQ
RUN echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
RUN wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
RUN apt-get update
RUN apt-get install rabbitmq-server -y

#Install python and python lib for RabbitMQ
RUN apt-get install -y python
RUN pip install pika

#Enable RabbitMQ plugins
RUN rabbitmq-plugins enable rabbitmq_management

#Install Graylog
RUN pip install graypy
RUN pip install graypy[amqp]

#Install aditional packages
RUN apt-get install -y pkg-config libfreetype6-dev libpng-dev xvfb
RUN apt-get install -y python-yaml libgomp1 python-numpy python-pyfits python-matplotlib idle
RUN pip install nltk==3.0.5 nltk_tgrep --upgrade
RUN pip install pysrt ffmpy pyvirtualdisplay
RUN apt-get install -y software-properties-common

#Install FFmpeg
RUN add-apt-repository ppa:mc3man/trusty-media
RUN apt-get -y update
RUN apt-get install -y ffmpeg gstreamer0.10-ffmpeg

#Install MongoDB
RUN sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
RUN echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
RUN apt-get -y update && apt-get install -y mongodb-org
RUN mkdir -p /data/db

WORKDIR /root/
RUN mkdir -p ./storage/libras

#Copy workers to container
COPY ./core/translator.py /root/translator.py
COPY ./core/renderer.py /root/renderer.py
COPY ./core/PikaManager.py /root/PikaManager.py
COPY ./core/processManager.py /root/processManager.py
COPY ./core/logger.py /root/logger.py

COPY ./fonts/ /root/fonts/

COPY ./translate-api/  /root/translate-api/

COPY ./vlibras-translate/ /root/vlibras-translate/
COPY ./vlibras-libs/ /root/vlibras-libs/

COPY ./unityVideo/ /root/unityVideo/

#Workers environment variables
ENV VLIBRAS_VIDEO_CREATOR="/root/unityVideo/videoCreator.x86_64"
ENV VLIBRAS_VIDEO_LIBRAS="/root/storage/libras"
ENV VLIBRAS_VIDEO_SCREENS="/root/storage/frames"
ENV TEXT_FONTS="/root/fonts/FreeSans.ttf"

#Translator environment variables
ENV HUNPOS_TAGGER="/root/vlibras-libs/aelius/bin/hunpos-tag"
ENV AELIUS_DATA="/root/vlibras-libs/aelius/aelius_data"
ENV TRANSLATE_DATA="/root/vlibras-translate/data"
ENV NLTK_DATA="/root/vlibras-libs/aelius/nltk_data"
ENV PYTHONPATH=":/root/vlibras-libs/aelius:/root/vlibras-translate/src::/root/vlibras-libs/aelius:/root/vlibras-translate/src"

#Portas de comunicacao do container
EXPOSE 80:80
WORKDIR /root/translate-api/
RUN npm i

#Comando de entrada quando inicializado
ENTRYPOINT (/usr/bin/mongod & rabbitmq-server start & sleep 1m) ; npm start & python /root/processManager.py