diff --git a/Dockerfile b/Dockerfile index d30d040..3ed73dd 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,59 +1,6 @@ FROM ubuntu:14.04 MAINTAINER Jonathan Brilhante -#Dependencies installation - RabbitMQ / Graylog / Nodejs / Redis / MongoDB / FFmpeg - -#Packages updates -RUN apt-get -y upgrade && apt-get -y update - -#Install necessary packages -RUN apt-get install -y build-essential libssl-dev sudo curl wget && apt-get clean - -#Install Nodejs -RUN curl -sL https://deb.nodesource.com/setup | sudo bash - -RUN apt-get install -y nodejs && apt-get clean - -#Install python and python lib for RabbitMQ -RUN apt-get install -y python-setuptools python && apt-get clean && easy_install pip -RUN pip install pika - -#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 python-yaml libgomp1 python-numpy python-pyfits python-matplotlib idle && apt-get clean -RUN pip install nltk==3.0.5 nltk_tgrep --upgrade -RUN pip install pysrt pyvirtualdisplay -RUN apt-get install -y software-properties-common && apt-get clean - -#Install FFmpeg -RUN add-apt-repository ppa:mc3man/trusty-media && apt-get -y update && apt-get install -y ffmpeg gstreamer0.10-ffmpeg && apt-get clean - -RUN groupadd -r vlibras && useradd -r -g vlibras vlibras - -WORKDIR / -RUN mkdir /storage/ -RUN mkdir -p /storage/videos/ -RUN chown -R vlibras /storage/ - -USER vlibras -#Copy workers to container - -WORKDIR /home/vlibras/ - -ADD ./core/extractor.py /home/vlibras/extractor.py -ADD ./core/mixer.py /home/vlibras/mixer.py -ADD ./core/renderer.py /home/vlibras/renderer.py -ADD ./core/translator.py /home/vlibras/translator.py -ADD ./core/PikaManager.py /home/vlibras/PikaManager.py -ADD ./core/processManager.py /home/vlibras/processManager.py -ADD ./log/ /home/vlibras/log/ -ADD ./unityVideo/ /home/vlibras/unityVideo/ -ADD ./vlibras-translate/ /home/vlibras/vlibras-translate/ -ADD ./vlibras-libs/ /home/vlibras/vlibras-libs/ -ADD ./vlibras-api/ /home/vlibras/vlibras-api/ - #Workers environment variables ENV VLIBRAS_VIDEO_CREATOR="/home/vlibras/unityVideo/videoCreator.x86_64" ENV VLIBRAS_VIDEO_LIBRAS="/storage/libras" @@ -67,16 +14,52 @@ ENV TRANSLATE_DATA="/home/vlibras/vlibras-translate/data" ENV NLTK_DATA="/home/vlibras/vlibras-libs/aelius/nltk_data" ENV PYTHONPATH=":/home/vlibras/vlibras-libs/aelius:/home/vlibras/vlibras-translate/src" -#Portas de comunicacao do container +ENV DEBIAN_FRONTEND=noninteractive + +COPY ./core/extractor.py /home/vlibras/extractor.py +COPY ./core/mixer.py /home/vlibras/mixer.py +COPY ./core/renderer.py /home/vlibras/renderer.py +COPY ./core/translator.py /home/vlibras/translator.py +COPY ./core/PikaManager.py /home/vlibras/PikaManager.py +COPY ./core/processManager.py /home/vlibras/processManager.py +COPY ./log/ /home/vlibras/log/ +COPY ./unityVideo/ /home/vlibras/unityVideo/ +COPY ./vlibras-translate/ /home/vlibras/vlibras-translate/ +COPY ./vlibras-libs/ /home/vlibras/vlibras-libs/ +COPY ./vlibras-api/ /home/vlibras/vlibras-api/ + +RUN apt-get -y update && \ + apt-get install -y software-properties-common curl wget && \ + add-apt-repository ppa:mc3man/trusty-media && \ + curl -sL https://deb.nodesource.com/setup | sudo bash - && \ + apt-get -y update && \ + apt-get install -y ffmpeg gstreamer0.10-ffmpeg pkg-config libfreetype6-dev libpng-dev xvfb python-yaml libgomp1 python-numpy python-pyfits python-matplotlib idle build-essential libssl-dev sudo nodejs python-pip && \ + apt-get clean && \ + groupadd -r vlibras && useradd -r -g vlibras vlibras && \ + pip install pika && \ + pip install nltk==3.0.5 nltk_tgrep --upgrade && \ + pip install pysrt pyvirtualdisplay && \ + mkdir /storage/ && \ + mkdir -p /storage/videos/ && \ + chown -R vlibras /storage/ + WORKDIR /home/vlibras/vlibras-api/ -USER root -RUN npm cache clean -RUN rm -rf node_modules -RUN npm i -RUN npm install amqplib -RUN npm --version -RUN node --version +COPY ./docker-entrypoint.sh / + +RUN npm cache clean && \ + rm -rf node_modules && \ + npm i && \ + npm install amqplib && \ + mkdir -p /home/vlibras/vlibras-api/logsystem/logs && \ + chown -R vlibras. /home/vlibras && \ + apt-get purge -y build-essential && \ + chmod +x /docker-entrypoint.sh + +USER vlibras + +EXPOSE 8080 +VOLUME ["/storage"] +VOLUME ["/home/vlibras/vlibras-api/logsystem/logs"] -#Comando de entrada quando inicializado -ENTRYPOINT (sleep 1m) ; (node /home/vlibras/vlibras-api/server.js & sleep 10) ; python /home/vlibras/processManager.py +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml new file mode 100644 index 0000000..0ad67b7 --- /dev/null +++ b/compose/docker-compose.yml @@ -0,0 +1,37 @@ +version: '2' +volumes: + videos-rabbitmq: + external: true + driver: 'null' + videos-bd: + external: true + driver: 'null' + core_storage: + external: true + driver: 'null' + video_logs: + external: true + driver: 'null' +services: + mongo: + image: mongo:3.0.4 + volumes: + - videos-bd:/data/db + rabbit: + image: capgov/rabbitmq:test + volumes: + - videos-rabbitmq:/var/lib/rabbitmq + video: + image: hub.docker.planejamento.gov.br/vlibras/video_container:coppe + environment: + VLIBRAS_VIDEO_IP: b-vlibras-dth-01.brazilsouth.cloudapp.azure.com + VLIBRAS_VIDEO_PORT: '8080' + volumes: + - core_storage:/storage/ + - video_logs:/home/vlibras/vlibras-api/logsystem/logs + links: + - mongo:mongo + - rabbit:rabbit + labels: + io.rancher.container.pull_image: always + diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 0000000..b9d9c35 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +sleep 30 && python /home/vlibras/processManager.py & +exec /usr/bin/node /home/vlibras/vlibras-api/server.js 2>&1 | tee /home/vlibras/vlibras-api/logsystem/logs/$HOSTNAME-out.log + -- libgit2 0.21.2