From de0b47bccbf9eaec1211b60455621bc57fddb10f Mon Sep 17 00:00:00 2001 From: João Vitor Rebouças Date: Mon, 8 May 2017 01:58:05 -0300 Subject: [PATCH] Adicionando composes e Dockerfiles --- external-lb-docker.yml | 11 +++++++++++ external-lb-rancher.yml | 41 +++++++++++++++++++++++++++++++++++++++++ portal-docker.yml | 43 +++++++++++++++++++++++++++++++++++++++++++ portal-rancher.yml | 11 +++++++++++ portal/Dockerfile | 45 +++++++++++++++++++++++++++++++++++++++++++++ tradutor-docker.yml | 33 +++++++++++++++++++++++++++++++++ tradutor-rancher.yml | 11 +++++++++++ translate/Dockerfile | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ video-docker.yml | 36 ++++++++++++++++++++++++++++++++++++ video-rancher.yml | 11 +++++++++++ video/Dockerfile | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 372 insertions(+), 0 deletions(-) create mode 100644 external-lb-docker.yml create mode 100644 external-lb-rancher.yml create mode 100644 portal-docker.yml create mode 100644 portal-rancher.yml create mode 100755 portal/Dockerfile create mode 100644 tradutor-docker.yml create mode 100644 tradutor-rancher.yml create mode 100755 translate/Dockerfile create mode 100644 video-docker.yml create mode 100644 video-rancher.yml create mode 100755 video/Dockerfile diff --git a/external-lb-docker.yml b/external-lb-docker.yml new file mode 100644 index 0000000..48835af --- /dev/null +++ b/external-lb-docker.yml @@ -0,0 +1,11 @@ +version: '2' +services: + lb-vlibras: + image: rancher/lb-service-haproxy:v0.6.2 + ports: + - 80:80/tcp + - 8080:8080/tcp + labels: + io.rancher.container.agent.role: environmentAdmin + io.rancher.container.create_agent: 'true' + io.rancher.scheduler.global: 'true' diff --git a/external-lb-rancher.yml b/external-lb-rancher.yml new file mode 100644 index 0000000..9d28afa --- /dev/null +++ b/external-lb-rancher.yml @@ -0,0 +1,41 @@ +version: '2' +services: + lb-vlibras: + start_on_create: true + lb_config: + certs: [] + port_rules: + - path: /translate + priority: 1 + protocol: http + service: tradutor/api + source_port: 80 + target_port: 8080 + - path: /video + priority: 2 + protocol: http + service: tradutor/api + source_port: 80 + target_port: 8080 + - priority: 3 + protocol: http + service: video/video + source_port: 8080 + target_port: 8080 + - priority: 4 + protocol: http + service: portal/web + source_port: 80 + target_port: 8080 + stickiness_policy: + cookie: lb-vlibras + indirect: false + mode: insert + nocache: false + postonly: false + health_check: + healthy_threshold: 2 + response_timeout: 2000 + port: 42 + unhealthy_threshold: 3 + interval: 2000 diff --git a/portal-docker.yml b/portal-docker.yml new file mode 100644 index 0000000..b904392 --- /dev/null +++ b/portal-docker.yml @@ -0,0 +1,43 @@ +version: '2' +volumes: + portal_db: + external: true + driver: 'null' + portal_data: + external: true + driver: 'null' + portal_logs: + external: true + driver: 'null' +services: + web: + image: hub.docker.planejamento.gov.br/vlibras/portal:coppe + environment: + DOMAIN_NAME: b-vlibras-prd-01.brazilsouth.cloudapp.azure.com:80 + VLIBRAS_API: b-vlibras-prd-01.brazilsouth.cloudapp.azure.com:8080 + VLIBRAS_API_URL: http://b-vlibras-prd-01.brazilsouth.cloudapp.azure.com:8080/api/ + DATABASE_HOST: db + DATABASE_USER: vlibrasuser + DATABASE_PASSWORD: d426ff41c6d096db6f033c89b17b403e + DATABASE_DB: vlibrasvideo + volumes: + - portal_data:/vlibraslportal/ + - portal_logs:/myapp/log + links: + - redis:redis + - db:db + labels: + io.rancher.container.pull_image: always + redis: + image: hub.docker.planejamento.gov.br/capgov/redis:3.2.8 + command: + - /etc/redis/redis.conf + db: + image: hub.docker.planejamento.gov.br/capgov/mysql:5.6 + environment: + MYSQL_DATABASE: vlibrasvideo + MYSQL_PASSWORD: d426ff41c6d096db6f033c89b17b403e + MYSQL_ROOT_PASSWORD: iedeeb0ohj6eiphahSahroosh9jeiH + MYSQL_USER: vlibrasuser + volumes: + - portal_db:/var/lib/mysql diff --git a/portal-rancher.yml b/portal-rancher.yml new file mode 100644 index 0000000..79ec6e7 --- /dev/null +++ b/portal-rancher.yml @@ -0,0 +1,11 @@ +version: '2' +services: + web: + scale: 1 + start_on_create: true + redis: + scale: 1 + start_on_create: true + db: + scale: 1 + start_on_create: true diff --git a/portal/Dockerfile b/portal/Dockerfile new file mode 100755 index 0000000..1df3298 --- /dev/null +++ b/portal/Dockerfile @@ -0,0 +1,45 @@ +FROM phusion/baseimage:0.9.8 +MAINTAINER Jonathan Brilhante +MAINTAINER CAPGov-INFRA + +ENV LANG en_US.UTF-8 +ENV LC_ALL en_US.UTF-8 +ENV CONFIGURE_OPTS --disable-install-rdoc +ENV APP_HOME /myapp +ENV DEBIAN_FRONTEND=noninteractive + +# Install tools & libs to compile everything # Install imagemagick +RUN apt-get update && \ + apt-get install -y build-essential libssl-dev libreadline-dev imagemagick libmagick++-dev libmagic-dev git-core mysql-client libmysqlclient-dev && \ + apt-get clean && \ + git clone https://github.com/sstephenson/ruby-build.git && \ + cd ruby-build && \ + ./install.sh && \ + ruby-build 2.1.1 /usr/local && \ + gem install bundler && \ + gem install mysql2 && \ + mkdir $APP_HOME && \ + groupadd -r vlibras && \ + useradd -r -g vlibras vlibras && \ + apt-get purge -y build-essential git-core && \ + apt-get clean + +WORKDIR $APP_HOME + +ADD * $APP_HOME/ +RUN bundle install + +ADD . $APP_HOME + +COPY ./docker-entrypoint.sh / + +RUN chown -R vlibras. $APP_HOME && chmod +x /docker-entrypoint.sh + +USER vlibras + +EXPOSE 8080 + +VOLUME ["/myapp/log"] +VOLUME ["/vlibraslportal"] + +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/tradutor-docker.yml b/tradutor-docker.yml new file mode 100644 index 0000000..fb18aef --- /dev/null +++ b/tradutor-docker.yml @@ -0,0 +1,33 @@ +version: '2' +volumes: + tradutor_logs: + external: true + driver: 'null' + tradutor_bd: + external: true + driver: 'null' + core_db: + external: true + driver: 'null' + tradutor_rabbitmq: + external: true + driver: 'null' +services: + mongo: + image: hub.docker.planejamento.gov.br/capgov/mongodb + volumes: + - tradutor_bd:/data/db + rabbit: + image: hub.docker.planejamento.gov.br/capgov/rabbitmq:3.6.9-1-management + volumes: + - tradutor_rabbitmq:/var/lib/rabbitmq + api: + image: hub.docker.planejamento.gov.br/vlibras/tradutor:coppe + volumes: + - core_db:/home/vlibras/storage/ + - tradutor_logs:/home/vlibras/translate-api/logs + links: + - mongo:mongo + - rabbit:rabbit + labels: + io.rancher.container.pull_image: always diff --git a/tradutor-rancher.yml b/tradutor-rancher.yml new file mode 100644 index 0000000..62fd244 --- /dev/null +++ b/tradutor-rancher.yml @@ -0,0 +1,11 @@ +version: '2' +services: + mongo: + scale: 1 + start_on_create: true + rabbit: + scale: 1 + start_on_create: true + api: + scale: 1 + start_on_create: true diff --git a/translate/Dockerfile b/translate/Dockerfile new file mode 100755 index 0000000..24ec025 --- /dev/null +++ b/translate/Dockerfile @@ -0,0 +1,64 @@ +FROM ubuntu:14.04 +MAINTAINER Jonathan Brilhante +MAINTAINER CAPGov-INFRA + +COPY ./core/translator.py /home/vlibras/translator.py +COPY ./core/renderer.py /home/vlibras/renderer.py +COPY ./core/indexer.py /home/vlibras/indexer.py +COPY ./core/PikaManager.py /home/vlibras/PikaManager.py +COPY ./core/processManager.py /home/vlibras/processManager.py +COPY ./core/logger.py /home/vlibras/logger.py +COPY ./core/Trie.py /home/vlibras/Trie.py + +COPY ./fonts/ /home/vlibras/fonts/ + +COPY ./translate-api/ /home/vlibras/translate-api/ +COPY ./bundles/ /home/vlibras/bundles/ + +COPY ./vlibras-translate/ /home/vlibras/vlibras-translate/ +COPY ./vlibras-libs/ /home/vlibras/vlibras-libs/ +COPY ./unityVideo/ /home/vlibras/unityVideo/ + +ENV VLIBRAS_VIDEO_CREATOR="/home/vlibras/unityVideo/videoCreator.x86_64" +ENV VLIBRAS_VIDEO_LIBRAS="/home/vlibras/storage/libras" +ENV VLIBRAS_VIDEO_SCREENS="/home/vlibras/storage/frames" +ENV SIGNS_VLIBRAS="/home/vlibras/bundles" +ENV TEXT_FONTS="/home/vlibras/fonts/FreeSans.ttf" + +#Translator environment variables +ENV HUNPOS_TAGGER="/home/vlibras/vlibras-libs/aelius/bin/hunpos-tag" +ENV AELIUS_DATA="/home/vlibras/vlibras-libs/aelius/aelius_data" +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:/home/vlibras/vlibras-libs/aelius:/home/vlibras/vlibras-translate/src" + +RUN apt-get update -y && \ + apt-get install -y sudo curl wget software-properties-common && \ + curl -sL https://deb.nodesource.com/setup_6.x | bash - && \ + add-apt-repository ppa:mc3man/trusty-media && \ + apt-get -y update && \ + 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 && \ + pip install nltk==3.0.5 nltk_tgrep --upgrade && \ + pip install pysrt ffmpy pyvirtualdisplay pika && \ + groupadd -r vlibras && useradd -r -g vlibras vlibras && \ + mkdir -p /home/vlibras/storage/libras + +WORKDIR /home/vlibras/translate-api/ + +COPY ./docker-entrypoint.sh / + +RUN npm i && \ + mkdir -p /home/vlibras/translate-api/logs && \ + chown -R vlibras. /home/vlibras && \ + chmod +x /docker-entrypoint.sh && \ + mkdir -p /storage && \ + chown -R vlibras. /storage + +USER vlibras + +VOLUME ["/home/vlibras/translate-api/logs"] +VOLUME ["/home/vlibras/storage"] + +EXPOSE 8080 + +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/video-docker.yml b/video-docker.yml new file mode 100644 index 0000000..0c8c5d1 --- /dev/null +++ b/video-docker.yml @@ -0,0 +1,36 @@ +version: '2' +volumes: + videos_bd: + external: true + driver: 'null' + videos_rabbitmq: + external: true + driver: 'null' + core_storage: + external: true + driver: 'null' + video_logs: + external: true + driver: 'null' +services: + mongo: + image: hub.docker.planejamento.gov.br/capgov/mongodb + volumes: + - videos_bd:/data/db + rabbit: + image: hub.docker.planejamento.gov.br/capgov/rabbitmq:3.6.9-1-management + volumes: + - videos_rabbitmq:/var/lib/rabbitmq + video: + image: hub.docker.planejamento.gov.br/vlibras/video_container:coppe + environment: + VLIBRAS_VIDEO_IP: b-vlibras-prd-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/video-rancher.yml b/video-rancher.yml new file mode 100644 index 0000000..a3d19fe --- /dev/null +++ b/video-rancher.yml @@ -0,0 +1,11 @@ +version: '2' +services: + mongo: + scale: 1 + start_on_create: true + rabbit: + scale: 1 + start_on_create: true + video: + scale: 1 + start_on_create: true diff --git a/video/Dockerfile b/video/Dockerfile new file mode 100755 index 0000000..95ffdfa --- /dev/null +++ b/video/Dockerfile @@ -0,0 +1,66 @@ +FROM ubuntu:14.04 +MAINTAINER Jonathan Brilhante +MAINTAINER CAPGov-INFRA + +#Workers environment variables +ENV VLIBRAS_VIDEO_CREATOR="/home/vlibras/unityVideo/videoCreator.x86_64" +ENV VLIBRAS_VIDEO_LIBRAS="/storage/libras" +ENV VLIBRAS_VIDEO_MIXED="/storage/videos" +ENV VLIBRAS_VIDEO_SCREENS="/storage/frames" + +#Translator environment variables +ENV HUNPOS_TAGGER="/home/vlibras/vlibras-libs/aelius/bin/hunpos-tag" +ENV AELIUS_DATA="/home/vlibras/vlibras-libs/aelius/aelius_data" +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" + +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/ + +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"] + +ENTRYPOINT ["/docker-entrypoint.sh"] -- libgit2 0.21.2