From 53b0ffea2e052ada53c925155777efda835177c6 Mon Sep 17 00:00:00 2001 From: Guilherme Cantoni Date: Thu, 26 Mar 2015 23:33:00 -0300 Subject: [PATCH] Correção do problema de quebra de linha windows/unix e adição da biblioteca php-mcrypt --- Vagrantfile | 12 ++++++------ jod/Dockerfile | 19 ++++++++++--------- jod/entrypoint.sh | 10 ++++++++++ jod/libreoffice-headless | 41 ----------------------------------------- jod/run.sh | 9 --------- jod/tomcat6 | 23 ----------------------- mysql/Dockerfile | 21 ++++++++++----------- sei/Dockerfile | 41 ++++++++++++++++++++++++++++------------- sei/entrypoint.sh | 24 ++++++++++++++++++++++++ sei/run.sh | 20 -------------------- solr/Dockerfile | 11 +++++++---- 11 files changed, 95 insertions(+), 136 deletions(-) create mode 100644 jod/entrypoint.sh delete mode 100644 jod/libreoffice-headless delete mode 100755 jod/run.sh delete mode 100644 jod/tomcat6 create mode 100644 sei/entrypoint.sh delete mode 100644 sei/run.sh diff --git a/Vagrantfile b/Vagrantfile index a7534bc..10cfad3 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -41,7 +41,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Diretórios compartilhados com a durante a execução config.vm.synced_folder ".", "/mnt/sei/ops" config.vm.synced_folder params_source_dir, "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"] - config.vm.synced_folder params_repo_arquivos, "/mnt/sei/arquivos", create: true, mount_options: ["dmode=777", "fmode=777"] + #config.vm.synced_folder params_repo_arquivos, "/mnt/sei/arquivos", create: true, mount_options: ["dmode=777", "fmode=777"] config.vm.synced_folder File.dirname(params_script_sei), "/mnt/sei/db_sei" config.vm.synced_folder File.dirname(params_script_sip), "/mnt/sei/db_sip" @@ -75,9 +75,9 @@ SCRIPT # Provisiona docker containers na máquina virtual # docker run -it --name sei_data -v /mnt/sei/arquivos:/var/sei/arquivos centos:centos6 true - docker.run "sei_data", image: "centos:centos6", - args: "-v /mnt/sei/arquivos:/var/sei/arquivos", - cmd: "true" + # docker.run "sei_data", image: "centos:centos6", + # args: "-v /mnt/sei/arquivos:/var/sei/arquivos", + # cmd: "true" # docker run -d --name sei_db -p 3306:3306 processoeletronico/mysql:latest docker.run "sei_db", image: "processoeletronico/mysql:latest", @@ -94,10 +94,10 @@ SCRIPT daemonize: true, args: "-p 8080:8080" - # docker run -d --name sei_www -p 80:80 --link sei_solr:solr --link sei_db:db --link sei_jod:jod -v /mnt/sei/src:/var/www/html -v /mnt/sei/ops/sei:/mnt/sei/ops/sei --volumes-from sei_data processoeletronico/sei:latest + # docker run -d --name sei_www -p 80:80 --link sei_solr:solr --link sei_db:db --link sei_jod:jod -v /mnt/sei/src:/var/www/html -v /mnt/sei/ops/sei:/mnt/sei/ops/sei processoeletronico/sei:latest docker.run "sei_www", image: "processoeletronico/sei:latest", daemonize: true, - args: "-p 80:80 --link sei_db:db --link sei_solr:solr --link sei_jod:jod -v /mnt/sei/src:/var/www/html -v /mnt/sei/ops/sei:/mnt/sei/ops/sei --volumes-from sei_data" + args: "-p 80:80 --link sei_db:db --link sei_solr:solr --link sei_jod:jod -v /mnt/sei/src:/var/www/html -v /mnt/sei/ops/sei:/mnt/sei/ops/sei" end # Limpeza de arquivos temporários criados durante o provisionamento do sistema diff --git a/jod/Dockerfile b/jod/Dockerfile index 0d3ddcc..19a9039 100644 --- a/jod/Dockerfile +++ b/jod/Dockerfile @@ -1,5 +1,5 @@ ########################################################### -# Dockerfile de construção do container Jod +# Dockerfile de construção do container JOD # utilizado pelo SEI e pelo SIP # # Baseado no CentOS 6.X @@ -12,21 +12,22 @@ FROM centos:centos6 MAINTAINER PEN - Processo Eletrônico Nacional ################## INICIO DA INSTALACAO ###################### -# Instalação do MySQL seguindo as recomendações descritas na documentação do SEI -# Ref: http://# +# Instalação do JOD Converter seguindo as recomendações descritas na documentação do SEI +# Ref: https://processoeletronico.gov.br/projects/sei/wiki # Instalação do pacote Java JDK e utilitários utilizados no provisionamento RUN yum -y update && \ - yum install -y java-1.7.0-openjdk-devel wget unzip libreoffice libreoffice-headless + yum install -y java-1.7.0-openjdk-devel wget unzip dos2unix libreoffice libreoffice-headless && \ + yum -y clean all +# TODO: Utilizar wget para obter o pacote da web, removendo-o posteriormente para otimizar o tamanho da imagem # Instalação da api de serviços de conversão de documentos ADD jodconverter-tomcat-2.2.2.zip /opt/ RUN unzip /opt/jodconverter-tomcat-2.2.2.zip -d /opt && rm /opt/jodconverter-tomcat-2.2.2.zip -# Script de inicialização dos serviços -ADD run.sh /run.sh - -RUN chmod +x /run.sh +# Script de inicialização do container entry-point +ADD entrypoint.sh /entrypoint.sh +RUN dos2unix /entrypoint.sh && chmod +x /entrypoint.sh ##################### FIM DA INSTALACAO ##################### @@ -34,4 +35,4 @@ RUN chmod +x /run.sh EXPOSE 8080 # Inicialização dos serviços Apache e Memcache -CMD ["/run.sh"] \ No newline at end of file +CMD ["/entrypoint.sh"] \ No newline at end of file diff --git a/jod/entrypoint.sh b/jod/entrypoint.sh new file mode 100644 index 0000000..e1d64ab --- /dev/null +++ b/jod/entrypoint.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +SOFFICE_PATH=/usr/bin/soffice +TOMCAT6_PATH=/opt/jodconverter-tomcat-2.2.2/bin/catalina.sh + +echo "Iniciando o serviço LibreOffice headless ..." +$SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1 + +echo "Iniciando o serviço Tomcat 6 ..." +$TOMCAT6_PATH run \ No newline at end of file diff --git a/jod/libreoffice-headless b/jod/libreoffice-headless deleted file mode 100644 index ad71b86..0000000 --- a/jod/libreoffice-headless +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# libreoffice.org headless server script -# -# chkconfig: 2345 80 30 -# description: headless libreoffice server script -# processname: libreoffice -# -# Author: Vic Vijayakumar -# Modified by Federico Ch. Tomasczik -# Modified by Manuel Vega Ulloa -OOo_HOME=/usr/bin -SOFFICE_PATH=$OOo_HOME/soffice -PIDFILE=/var/run/libreoffice-server.pid -set -e -case "$1" in - start) - if [ -f $PIDFILE ]; then - echo "LibreOffice headless server has already started." - sleep 5 - exit - fi - echo "Starting LibreOffice headless server" - $SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1 - PID=`ps ax | grep "soffice.bin --headless"| grep -v grep|cut -d \ -f 1` - echo $PID> $PIDFILE - ;; - stop) - if [ -f $PIDFILE ]; then - echo "Stopping LibreOffice headless server." - kill `cat $PIDFILE` - rm -f $PIDFILE - exit - fi - echo "LibreOffice headless server is not running." - exit - ;; - *) - echo "Usage: $0 {start|stop}" - exit 1 -esac -exit 0 \ No newline at end of file diff --git a/jod/run.sh b/jod/run.sh deleted file mode 100755 index 2ec8caa..0000000 --- a/jod/run.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -SOFFICE_PATH=/usr/bin/soffice -TOMCAT6_PATH=/opt/jodconverter-tomcat-2.2.2/bin/catalina.sh - -echo "Iniciando o serviço LibreOffice headless ..." -$SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1 - -echo "Iniciando o serviço Tomcat 6 ..." -$TOMCAT6_PATH run \ No newline at end of file diff --git a/jod/tomcat6 b/jod/tomcat6 deleted file mode 100644 index c795030..0000000 --- a/jod/tomcat6 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -#ss description: Tomcat Start Stop Restart -# processname: tomcat -# chkconfig: 234 20 80 -#JAVA_HOME=/usr/java/jdk1.7.0_05 -#export JAVA_HOME -#PATH=$JAVA_HOME/bin:$PATH -#export PATH -CATALINA_HOME=/opt/jodconverter-tomcat-2.2.2 - -case $1 in -start) - sh $CATALINA_HOME/bin/startup.sh -;; -stop) - sh $CATALINA_HOME/bin/shutdown.sh -;; -restart) - sh $CATALINA_HOME/bin/shutdown.sh - sh $CATALINA_HOME/bin/startup.sh -;; -esac -exit 0 diff --git a/mysql/Dockerfile b/mysql/Dockerfile index 9fb9d9c..f28c910 100644 --- a/mysql/Dockerfile +++ b/mysql/Dockerfile @@ -11,19 +11,18 @@ FROM centos:centos6 # Autor e mantenedor do container MAINTAINER PEN - Processo Eletrônico Nacional -# Atualização dos componentes utilizados na instalação -RUN yum -y update mysql-server-5.* unzip - -# Cópia dos backups dos bancos de dados do SEI e SIP -ADD .tmp/sei_mysql.sql /tmp/sei_mysql.sql -ADD .tmp/sip_mysql.sql /tmp/sip_mysql.sql - ################## INICIO DA INSTALACAO ###################### # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI -# Ref: http://sei.processoeletronico.gov.br/wiki/manual_de_instalacao# +# Ref: https://processoeletronico.gov.br/projects/sei/wiki # Instalação do MySQL Server 5.X -RUN yum install -y mysql-server-5.* +RUN yum update -y && \ + yum install -y mysql-server-5.* && \ + yum -y clean all + +# Cópia dos backups dos bancos de dados do SEI e SIP +ADD .tmp/sei_mysql.sql /tmp/sei_mysql.sql +ADD .tmp/sip_mysql.sql /tmp/sip_mysql.sql # Configuração da estrutura inicial do banco de dados RUN mysql_install_db @@ -44,7 +43,7 @@ RUN service mysqld start && \ RUN service mysqld start && cd /tmp && \ mysql sei < sei_mysql.sql && \ mysql sip < sip_mysql.sql && \ - rm /tmp/sei_mysql.sql /tmp/sip_mysql.sql + rm -f /tmp/sei_mysql.sql /tmp/sip_mysql.sql # Atualização dos parâmetros do SEI e do SIP RUN service mysqld start && \ @@ -61,7 +60,7 @@ RUN service mysqld start && \ RUN service mysqld start && \ mysql -e "update orgao set sin_autenticar='N' where id_orgao=0;" sip -# Alteração das configurações padrões do MySQL +# Atribuição de permissões de acesso externo para o usuário root, senha root RUN service mysqld start && \ mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;" diff --git a/sei/Dockerfile b/sei/Dockerfile index a841782..6b6969e 100644 --- a/sei/Dockerfile +++ b/sei/Dockerfile @@ -12,12 +12,23 @@ FROM centos:centos6 MAINTAINER PEN - Processo Eletrônico Nacional ################## INICIO DA INSTALACAO ###################### -# Instalação do MySQL seguindo as recomendações descritas na documentação do SEI -# Ref: http://sei.processoeletronico.gov.br/wiki/manual_de_instalacao# +# Instalação do SEI seguindo as recomendações descritas na documentação do SEI +# Ref: https://processoeletronico.gov.br/projects/sei/wiki # Instalação do servidor web Apache 2.2, memcache e demais componentes RUN yum -y update && \ - yum -y install httpd-2.2.* mysql-5.1.* memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 + yum -y install httpd-2.2.* mysql-5.1.* memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 dos2unix crontabs \ + php-5.3.* php-common php-cli php-pear php-bcmath php-gd php-gmp php-imap php-intl php-ldap php-mbstring php-mysql \ + php-odbc php-pdo php-pecl-apc php-pspell php-zlib php-snmp php-soap php-xml php-xmlrpc php-zts php-devel \ + php-pecl-apc-devel php-pecl-memcache php-calendar php-shmop && \ + yum -y clean all + +# Procedimentos para instalação das bibliotecas php-mcrypt +RUN wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6 && \ + wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm && \ + rpm -ivh epel-release-6-8.noarch.rpm && \ + rm -f epel-release-6-8.noarch.rpm RPM-GPG-KEY-EPEL-6 && \ + yum -y install php-mcrypt # Configuração do charset do Apache RUN echo "AddDefaultCharset iso-8859-1" | tee -a /etc/httpd/conf/httpd.conf @@ -25,13 +36,6 @@ RUN echo "AddDefaultCharset iso-8859-1" | tee -a /etc/httpd/conf/httpd.conf # Correção do bug do VirtualBox relacionado ao Sendfile. http://docs.vagrantup.com/v2/synced-folders/virtualbox.html RUN echo "EnableSendfile Off" | tee -a /etc/httpd/conf/httpd.conf -# Instalação do PHP 5 e demais bibliotecas -RUN yum -y update && \ - yum -y install php-5.3.* php-common php-cli php-pear php-bcmath php-gd php-gmp \ - php-imap php-intl php-ldap php-mbstring php-mysql php-odbc php-pdo php-pecl-apc \ - php-pspell php-zlib php-snmp php-soap php-xml php-xmlrpc php-zts php-devel \ - php-pecl-apc-devel php-pecl-memcache php-calendar php-shmop - # Instalação do componentes UploadProgress RUN pecl install uploadprogress && \ echo "extension=uploadprogress.so" >> /etc/php.d/uploadprogress.ini @@ -42,8 +46,19 @@ ADD ConfiguracaoSip.php /opt/sip/ConfiguracaoSip.php # Copia arquivos necessários para a instalação ADD sei.ini /etc/php.d/sei.ini -ADD run.sh /run.sh -RUN chmod +x /run.sh + +RUN mkdir -p /var/sei/arquivos && \ + chmod -R 777 /var/sei/arquivos + +# Configuração dos serviços de background do Cron +RUN mkdir /var/log/sei +RUN sed -i '/session required pam_loginuid.so/c\#session required pam_loginuid.so' /etc/pam.d/crond +RUN echo "*/5 * * * * root /usr/bin/php -c /etc/php.ini /var/www/html/sei/AgendamentoTarefaSEI.php 2>&1 >> /var/log/sei/agendamento_sei.log" >> /etc/cron.d/sei +RUN echo "*/5 * * * * root /usr/bin/php -c /etc/php.ini /var/www/html/sip/AgendamentoTarefaSip.php 2>&1 >> /var/log/sei/agendamento_sip.log" >> /etc/cron.d/sei + +# Script de inicialização do container entry-point +ADD entrypoint.sh /entrypoint.sh +RUN dos2unix /entrypoint.sh && chmod +x /entrypoint.sh ##################### FIM DA INSTALACAO ##################### @@ -51,4 +66,4 @@ RUN chmod +x /run.sh EXPOSE 80 # Inicialização dos serviços Apache e Memcache -CMD ["/run.sh"] \ No newline at end of file +CMD ["/entrypoint.sh"] \ No newline at end of file diff --git a/sei/entrypoint.sh b/sei/entrypoint.sh new file mode 100644 index 0000000..8322c12 --- /dev/null +++ b/sei/entrypoint.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +echo "127.0.0.1 sip_www" | tee -a /etc/hosts + +# Atribuição dos parâmetros de configuração do SEI +cp /opt/sei/ConfiguracaoSEI.php /var/www/html/sei/ConfiguracaoSEI.php +cp /opt/sip/ConfiguracaoSip.php /var/www/html/sip/ConfiguracaoSip.php + +# Criação do diretório padrão de upload de arquivos +mkdir /var/www/html/sei/upload && chmod -R 666 /var/www/html/sei/upload +mkdir /var/www/html/sip/upload && chmod -R 666 /var/www/html/sip/upload + +# Permissão de execução para utilitário de conversão de PDFs +chmod +x /var/www/html/sei/ferramentas/wkhtmltopdf-amd64 + +# Inicialização do serviço de cache +service memcached start + +# Inicialização das rotinas de agendamento +service rsyslog start +service crond start + +# Inicialização do servidor web +/usr/sbin/httpd -DFOREGROUND \ No newline at end of file diff --git a/sei/run.sh b/sei/run.sh deleted file mode 100644 index 816439b..0000000 --- a/sei/run.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -echo "127.0.0.1 sip_www" | tee -a /etc/hosts - -# Atribuição dos parâmetros de configuração do SEI -cp /opt/sei/ConfiguracaoSEI.php /var/www/html/sei/ConfiguracaoSEI.php -cp /opt/sip/ConfiguracaoSip.php /var/www/html/sip/ConfiguracaoSip.php - -# Criação do diretório padrão de upload de arquivos -mkdir /var/www/html/sei/upload && chmod -R 666 /var/www/html/sei/upload -mkdir /var/www/html/sip/upload && chmod -R 666 /var/www/html/sip/upload - -# Permissão de execução para utilitário de conversão de PDFs -chmod +x /var/www/html/sei/ferramentas/wkhtmltopdf-amd64 - -# Inicialização do serviço de cache -/etc/init.d/memcached start 2>&1 > /dev/null - -# Inicialização do servidor web -/usr/sbin/httpd -DFOREGROUND diff --git a/solr/Dockerfile b/solr/Dockerfile index a8a8dbe..3ff8034 100644 --- a/solr/Dockerfile +++ b/solr/Dockerfile @@ -12,16 +12,18 @@ FROM centos:centos6 MAINTAINER PEN - Processo Eletrônico Nacional ################## INICIO DA INSTALACAO ###################### -# Instalação do MySQL seguindo as recomendações descritas na documentação do SEI -# Ref: http://# +# Instalação do Apache Solr seguindo as recomendações descritas na documentação do SEI +# Ref: https://processoeletronico.gov.br/projects/sei/wiki # Instalação do pacote Java JDK e utilitários utilizados no provisionamento RUN yum update -y && \ - yum install -y java-1.7.0-openjdk wget tar curl which + yum install -y java-1.7.0-openjdk wget tar curl which && \ + yum -y clean all # Criação de usuário de execução do serviço RUN useradd solr +# TODO: Utilizar wget para obter o pacote da web, removendo-o posteriormente para otimizar o tamanho da imagem # Obtenção do pacote de instalação do Solr 4.0 ADD apache-solr-4.0.0.tgz /opt/ @@ -34,7 +36,8 @@ RUN echo "JAVA_OPTIONS='-Dsolr.solr.home=/opt/solr/example/solr $JAVA_OPTIONS'" echo "JETTY_USER=solr" | tee -a /etc/default/jetty # Configuração do script de inicialização automática -RUN wget -q -O /etc/init.d/solr https://raw.githubusercontent.com/eclipse/jetty.project/jetty-7/jetty-distribution/src/main/resources/bin/jetty.sh && chmod +x /etc/init.d/solr +RUN wget -q -O /etc/init.d/solr https://raw.githubusercontent.com/eclipse/jetty.project/jetty-7/jetty-distribution/src/main/resources/bin/jetty.sh && \ + chmod +x /etc/init.d/solr # Criação dos diretório de armazenamento de índices RUN mkdir /var/opt/sei && \ -- libgit2 0.21.2