Commit 3039fb69e8f457e128e09383f90243d54e1e8456

Authored by Guilherme Cantoni
1 parent f8230e6e

Correção do problema de quebra de linha windows/unix e adição da

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