Commit 5b82c6346ff8d30e8503ee9244f9cd1314355da2

Authored by Guilherme Andrade Del Cantoni
2 parents f75b41d3 7c9dc085

Ajustes finais do ambiente e início de testes

1 # -*- mode: ruby -*- 1 # -*- mode: ruby -*-
2 # vi: set ft=ruby : 2 # vi: set ft=ruby :
3 3
4 -# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!  
5 VAGRANTFILE_API_VERSION = "2" 4 VAGRANTFILE_API_VERSION = "2"
6 5
7 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 6 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
8 7
9 # Atribuição do hostname da máquina virtual 8 # Atribuição do hostname da máquina virtual
10 config.vm.hostname = "sei-vagrant" 9 config.vm.hostname = "sei-vagrant"
11 -  
12 config.vm.box = "ubuntu/trusty64" 10 config.vm.box = "ubuntu/trusty64"
13 11
14 # Configuração do redirecionamento entre Máquina Virtual e Host 12 # Configuração do redirecionamento entre Máquina Virtual e Host
@@ -23,11 +21,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -23,11 +21,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
23 config.vm.synced_folder ".", "/mnt/sei/ops" 21 config.vm.synced_folder ".", "/mnt/sei/ops"
24 config.vm.synced_folder "../sei", "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"] 22 config.vm.synced_folder "../sei", "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"]
25 23
  24 + # Configurações padrão da máquina virtual host
26 config.vm.provider "virtualbox" do |vb| 25 config.vm.provider "virtualbox" do |vb|
27 vb.customize ["modifyvm", :id, "--memory", "2048", "--usb", "off", "--audio", "none"] 26 vb.customize ["modifyvm", :id, "--memory", "2048", "--usb", "off", "--audio", "none"]
28 end 27 end
29 28
30 - # Provisionamento da Máquina Virtual responsável por manter os containers do Docker 29 + # Provisionamento da máquina virtual responsável por manter os containers do Docker
31 config.vm.provision "docker" do |docker| 30 config.vm.provision "docker" do |docker|
32 31
33 # Constrói imagens dos containers utilizados no provicionamento 32 # Constrói imagens dos containers utilizados no provicionamento
@@ -35,11 +34,11 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -35,11 +34,11 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
35 docker.build_image "/mnt/sei/ops/mysql", args: "-t 'processoeletronico/mysql'" 34 docker.build_image "/mnt/sei/ops/mysql", args: "-t 'processoeletronico/mysql'"
36 docker.build_image "/mnt/sei/ops/sei", args: "-t 'processoeletronico/sei'" 35 docker.build_image "/mnt/sei/ops/sei", args: "-t 'processoeletronico/sei'"
37 docker.build_image "/mnt/sei/ops/memcached", args: "-t 'processoeletronico/memcached'" 36 docker.build_image "/mnt/sei/ops/memcached", args: "-t 'processoeletronico/memcached'"
38 - docker.pull_images "schickling/mailcatcher"  
39 - #docker.build_image "/mnt/sei/ops/jod", args: "-t 'processoeletronico/jod'" 37 + docker.build_image "/mnt/sei/ops/fakesmtp", args: "-t 'processoeletronico/fakesmtp'"
  38 + docker.build_image "/mnt/sei/ops/jod", args: "-t 'processoeletronico/jod'"
40 39
41 # docker run -d --name smtp -p 1080:1080 schickling/mailcatcher:latest 40 # docker run -d --name smtp -p 1080:1080 schickling/mailcatcher:latest
42 - docker.run "smtp", image: "schickling/mailcatcher", 41 + docker.run "smtp", image: "processoeletronico/fakesmtp",
43 daemonize: true, 42 daemonize: true,
44 args: "-p 1080:1080" 43 args: "-p 1080:1080"
45 44
@@ -58,18 +57,19 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -58,18 +57,19 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
58 daemonize: true, 57 daemonize: true,
59 args: "-p 8983:8983" 58 args: "-p 8983:8983"
60 59
  60 + # Container do Jod desativado por questões de otimização
61 # docker run -d --name jod -p 8080:8080 processoeletronico/jod:latest 61 # docker run -d --name jod -p 8080:8080 processoeletronico/jod:latest
62 - #docker.run "jod", image: "processoeletronico/jod:latest",  
63 - # daemonize: true,  
64 - # args: "-p 8080:8080" 62 + docker.run "jod", image: "processoeletronico/jod:latest",
  63 + daemonize: true,
  64 + args: "-p 8080:8080"
65 65
66 - # docker run -d --name sei -p 80:80 --link solr:solr --link db:db --link memcached:memcached -v /mnt/sei/src:/opt processoeletronico/sei:latest 66 + # docker run -d --name sei -p 80:80 --link solr:solr --link db:db --link memcached:memcached --link smtp:smtp -v /mnt/sei/src:/opt processoeletronico/sei:latest
67 docker.run "sei", image: "processoeletronico/sei:latest", 67 docker.run "sei", image: "processoeletronico/sei:latest",
68 daemonize: true, 68 daemonize: true,
69 - args: "-p 80:80 --link db:db --link solr:solr --link memcached:memcached --link smtp:smtp -v /mnt/sei/src:/opt" 69 + args: "-p 80:80 --link db:db --link solr:solr --link memcached:memcached --link smtp:smtp --link jod:jod -v /mnt/sei/src:/opt"
70 end 70 end
71 71
72 # Inicialização dos containers em caso de reinicialização da máquina host 72 # Inicialização dos containers em caso de reinicialização da máquina host
73 # A inicialização é realizada de forma sequencial para evitar conflito no mapeamento de volumes no Docker 73 # A inicialização é realizada de forma sequencial para evitar conflito no mapeamento de volumes no Docker
74 - config.vm.provision "shell", run: "always", inline: "docker restart solr && docker restart memcached && docker restart smtp && docker restart db && docker restart sei" 74 + config.vm.provision "shell", run: "always", inline: "docker restart jod && docker restart solr && docker restart memcached && docker restart smtp && docker restart db && docker restart sei"
75 end 75 end
Vagrantfile_Distrib
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 # vi: set ft=ruby : 2 # vi: set ft=ruby :
3 3
4 unless Vagrant.has_plugin?("vagrant-vbguest") 4 unless Vagrant.has_plugin?("vagrant-vbguest")
5 - raise "\n\nAmbiente de desenvolvimento não pode ser criado não foi encontrado o plugin vagrant-vbguest.\n"+ 5 + raise "\n\nAmbiente de desenvolvimento não pode ser criado pois não foi encontrado o plugin vagrant-vbguest.\n"+
6 "Para solucionar o problema, execute o seguinte comando no diretório raiz do projeto.\n\n"+ 6 "Para solucionar o problema, execute o seguinte comando no diretório raiz do projeto.\n\n"+
7 "> vagrant plugin install vagrant-vbguest \n\n" 7 "> vagrant plugin install vagrant-vbguest \n\n"
8 end 8 end
@@ -17,7 +17,7 @@ Vagrant.configure(2) do |config| @@ -17,7 +17,7 @@ Vagrant.configure(2) do |config|
17 config.ssh.password = "vagrant" 17 config.ssh.password = "vagrant"
18 18
19 # Configuração do diretório local onde deverá estar disponibilizado os códigos-fontes do SEI (sei, sip, infra_php, infra_css, infra_js) 19 # Configuração do diretório local onde deverá estar disponibilizado os códigos-fontes do SEI (sei, sip, infra_php, infra_css, infra_js)
20 - config.vm.synced_folder ".", "/opt", mount_options: ["dmode=777", "fmode=777"] 20 + config.vm.synced_folder ".", "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"]
21 21
22 # Configuração do redirecionamento entre Máquina Virtual e Host 22 # Configuração do redirecionamento entre Máquina Virtual e Host
23 # Necessário permissões de root para utilizar a porta 80 (> 1024) 23 # Necessário permissões de root para utilizar a porta 80 (> 1024)
@@ -28,5 +28,6 @@ Vagrant.configure(2) do |config| @@ -28,5 +28,6 @@ Vagrant.configure(2) do |config|
28 config.vm.network :forwarded_port, guest: 1080, host: 1080 # MailCatcher 28 config.vm.network :forwarded_port, guest: 1080, host: 1080 # MailCatcher
29 29
30 # Inicialização dos containers em caso de reinicialização da máquina host 30 # Inicialização dos containers em caso de reinicialização da máquina host
31 - config.vm.provision "shell", run: "always", inline: "docker restart solr && docker restart memcached && docker restart smtp && docker restart db && docker restart sei" 31 + config.vm.provision "shell", run: "always", inline: "docker restart jod && docker restart solr && docker restart memcached && docker restart smtp && docker restart db && docker restart sei"
  32 +
32 end 33 end
fakesmtp/Dockerfile 0 → 100644
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +##############################################################################
  2 +# Dockerfile de construção do container WebApp utilizado pelo SEI e pelo SIP #
  3 +##############################################################################
  4 +
  5 +FROM schickling/mailcatcher
  6 +
  7 +MAINTAINER PEN - Processo Eletrônico Nacional
  8 +
  9 +EXPOSE 1080
  10 +
jod/Dockerfile
@@ -2,17 +2,17 @@ @@ -2,17 +2,17 @@
2 # Dockerfile de construção do container JOD utilizado pelo SEI e pelo SIP # 2 # Dockerfile de construção do container JOD utilizado pelo SEI e pelo SIP #
3 ########################################################################### 3 ###########################################################################
4 4
5 -# Definição da imagem de base para o CentOS 6.X 5 +# Definição da imagem de base para o OpenJDK 8
6 FROM openjdk:8 6 FROM openjdk:8
7 7
8 # Autor e mantenedor do container 8 # Autor e mantenedor do container
9 MAINTAINER PEN - Processo Eletrônico Nacional 9 MAINTAINER PEN - Processo Eletrônico Nacional
10 10
11 -ENV TERM xterm  
12 -  
13 ################## INICIO DA INSTALACAO ###################### 11 ################## INICIO DA INSTALACAO ######################
14 # Instalação do JOD Converter seguindo as recomendações descritas na documentação do SEI 12 # Instalação do JOD Converter seguindo as recomendações descritas na documentação do SEI
15 13
  14 +ENV TERM xterm
  15 +
16 # Instalação da api de serviços de conversão de documentos 16 # Instalação da api de serviços de conversão de documentos
17 COPY jodconverter-tomcat-2.2.2.zip /opt/ 17 COPY jodconverter-tomcat-2.2.2.zip /opt/
18 18
jod/install.sh
@@ -4,7 +4,7 @@ set -e @@ -4,7 +4,7 @@ set -e
4 4
5 # Instalação do pacote Java JDK e utilitários utilizados no provisionamento 5 # Instalação do pacote Java JDK e utilitários utilizados no provisionamento
6 apt-get -y update 6 apt-get -y update
7 -apt-get install -y --no-install-recommends wget unzip dos2unix libreoffice 7 +apt-get install -y --no-install-recommends wget unzip libreoffice
8 apt-get -y clean all 8 apt-get -y clean all
9 9
10 # Instalação da api de serviços de conversão de documentos 10 # Instalação da api de serviços de conversão de documentos
@@ -12,7 +12,6 @@ unzip /opt/jodconverter-tomcat-2.2.2.zip -d /opt @@ -12,7 +12,6 @@ unzip /opt/jodconverter-tomcat-2.2.2.zip -d /opt
12 rm /opt/jodconverter-tomcat-2.2.2.zip 12 rm /opt/jodconverter-tomcat-2.2.2.zip
13 13
14 # Script de inicialização do container entry-point 14 # Script de inicialização do container entry-point
15 -dos2unix /entrypoint.sh  
16 chmod +x /entrypoint.sh 15 chmod +x /entrypoint.sh
17 16
18 exit 0 17 exit 0
mysql/Dockerfile
1 ############################################################ 1 ############################################################
2 -# Dockerfile de construção do container do MySQL  
3 -# utilizado pelo SEI e pelo SIP  
4 -#  
5 -# Baseado no CentOS 6.X 2 +# Dockerfile de construção do container do MySQL utilizado pelo SEI e pelo SIP
6 ############################################################ 3 ############################################################
7 4
8 # Definição da imagem de base para o CentOS 6.X 5 # Definição da imagem de base para o CentOS 6.X
@@ -14,40 +11,14 @@ MAINTAINER PEN - Processo Eletrônico Nacional @@ -14,40 +11,14 @@ MAINTAINER PEN - Processo Eletrônico Nacional
14 ################## INICIO DA INSTALACAO ###################### 11 ################## INICIO DA INSTALACAO ######################
15 # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI 12 # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI
16 13
  14 +ENV TERM xterm
17 ENV MYSQL_ALLOW_EMPTY_PASSWORD 'yes' 15 ENV MYSQL_ALLOW_EMPTY_PASSWORD 'yes'
18 -#ENV MYSQL_DATABASE 'sei'  
19 -#ENV MYSQL_USER 'sei_user'  
20 -#ENV MYSQL_PASSWORD 'sei_user'  
21 -  
22 -# Cópia dos backups dos bancos de dados do SEI e SIP  
23 -#ADD sei-db-ref-executivo/mysql/sei_2_6_0_BD_Ref_Exec.sql /opt/sei_mysql.sql  
24 -#ADD sei-db-ref-executivo/mysql/sip_2_6_0_BD_Ref_Exec.sql /opt/sip_mysql.sql  
25 16
  17 +COPY install.sh /install.sh
26 COPY 1-preinstall.sql /tmp/1-preinstall.sql 18 COPY 1-preinstall.sql /tmp/1-preinstall.sql
27 -COPY sei-db-ref-executivo/mysql/sei_2_6_0_BD_Ref_Exec.sql /tmp/2-sei_mysql.sql  
28 -COPY sei-db-ref-executivo/mysql/sip_2_6_0_BD_Ref_Exec.sql /tmp/3-sip_mysql.sql 19 +COPY sei-db-ref-executivo/mysql/sei_3_0_0_BD_Ref_Exec.sql /tmp/2-sei_mysql.sql
  20 +COPY sei-db-ref-executivo/mysql/sip_3_0_0_BD_Ref_Exec.sql /tmp/3-sip_mysql.sql
29 COPY 4-posinstall.sql /tmp/4-posinstall.sql 21 COPY 4-posinstall.sql /tmp/4-posinstall.sql
30 22
31 -#ADD my.cnf /etc/my.cnf  
32 -#ADD install.sh /install.sh  
33 -  
34 -# Instalação do MySQL 5.7 e demais componentes  
35 -#RUN bash install.sh  
36 -  
37 -RUN cat /tmp/1-preinstall.sql > /docker-entrypoint-initdb.d/install.sql && \  
38 - echo "USE sei;" >> /docker-entrypoint-initdb.d/install.sql && \  
39 - cat /tmp/2-sei_mysql.sql >> /docker-entrypoint-initdb.d/install.sql && \  
40 - echo "USE sip;" >> /docker-entrypoint-initdb.d/install.sql && \  
41 - cat /tmp/3-sip_mysql.sql >> /docker-entrypoint-initdb.d/install.sql && \  
42 - cat /tmp/4-posinstall.sql >> /docker-entrypoint-initdb.d/install.sql  
43 -  
44 -##################### FIM DA INSTALACAO #####################  
45 -  
46 -# Definição do terminal a ser utilizado  
47 -#ENV TERM xterm  
48 -  
49 -# Exposição da porta de conexão ao MySQL Server  
50 -#EXPOSE 3306 23 +RUN bash /install.sh
51 24
52 -# Inicialização do serviço  
53 -#CMD ["/usr/bin/mysqld_safe", "--bind-address=0.0.0.0"]  
mysql/install.sh
@@ -2,38 +2,21 @@ @@ -2,38 +2,21 @@
2 2
3 set -e 3 set -e
4 4
5 -echo "Inicialização do banco de dados"  
6 -/entrypoint.sh 5 +# Constroi script de restauração da base de dados do sistema
  6 +cat /tmp/1-preinstall.sql > /docker-entrypoint-initdb.d/install.sql
7 7
8 -echo "Criação dos bancos de dados do sistema"  
9 -mysql -e "CREATE DATABASE IF NOT EXISTS 'sei';"  
10 -mysql -e "CREATE DATABASE IF NOT EXISTS 'sip';" 8 +# Script de restauração da base de dados do SEI
  9 +echo "USE sei;" >> /docker-entrypoint-initdb.d/install.sql
  10 +cat /tmp/2-sei_mysql.sql >> /docker-entrypoint-initdb.d/install.sql
11 11
12 -# Criação dos usuários utilizados na conexão com SEI e SIP  
13 -mysql -e "CREATE USER 'sip_user'@'%' IDENTIFIED BY 'sip_user'" sip  
14 -mysql -e "CREATE USER 'sei_user'@'%' IDENTIFIED BY 'sei_user'" sei  
15 -mysql -e "GRANT ALL PRIVILEGES ON sip.* TO 'sip_user'@'%'" sip  
16 -mysql -e "GRANT ALL PRIVILEGES ON sei.* TO 'sei_user'@'%'" sei 12 +#Script de restauração da base de dados do SIP
  13 +echo "USE sip;" >> /docker-entrypoint-initdb.d/install.sql
  14 +cat /tmp/3-sip_mysql.sql >> /docker-entrypoint-initdb.d/install.sql
17 15
18 -# Restauração dos bancos de dados  
19 -mysql sei < /opt/sei_mysql.sql  
20 -mysql sip < /opt/sip_mysql.sql  
21 -rm -f /opt/sei_mysql.sql /opt/sip_mysql.sql  
22 -  
23 -# Atualização dos parâmetros do SEI e do SIP  
24 -mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sip  
25 -mysql -e "update sistema set pagina_inicial='http://localhost/sip' where sigla='SIP';" sip  
26 -mysql -e "update sistema set pagina_inicial='http://localhost/sei/inicializar.php', web_service='http://localhost/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip  
27 -mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sei  
28 -  
29 -# Temp: Remove registros de auditoria presentes na base de referência  
30 -mysql -e "delete from auditoria_protocolo;" sei  
31 -  
32 -# Configuração para utilizar autenticação nativa do SEI/SIP  
33 -mysql -e "update orgao set sin_autenticar='N' where id_orgao=0;" sip  
34 -  
35 -# Atribuição de permissões de acesso externo para o usuário root, senha root  
36 -mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;" 16 +# Aplica ajustes nas tabelas de sistema e órgão do SIP e SEI
  17 +cat /tmp/4-posinstall.sql >> /docker-entrypoint-initdb.d/install.sql
37 18
  19 +# Correção de problema com o registro de log de documentos contendo imagens
  20 +echo "max_allowed_packet=268435456" >> /etc/my.cnf
38 21
39 exit 0 22 exit 0
mysql/my.cnf
@@ -1,26 +0,0 @@ @@ -1,26 +0,0 @@
1 -[mysqld]  
2 -#  
3 -# Remove leading # and set to the amount of RAM for the most important data  
4 -# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.  
5 -# innodb_buffer_pool_size = 128M  
6 -#  
7 -# Remove leading # to turn on a very important data integrity option: logging  
8 -# changes to the binary log between backups.  
9 -# log_bin  
10 -#  
11 -# Remove leading # to set options mainly useful for reporting servers.  
12 -# The server defaults are faster for transactions and fast SELECTs.  
13 -# Adjust sizes as needed, experiment to find the optimal values.  
14 -# join_buffer_size = 128M  
15 -# sort_buffer_size = 2M  
16 -# read_rnd_buffer_size = 2M  
17 -datadir=/var/lib/mysql  
18 -socket=/var/lib/mysql/mysql.sock  
19 -  
20 -# Disabling symbolic-links is recommended to prevent assorted security risks  
21 -symbolic-links=0  
22 -  
23 -max_allowed_packet=268435456  
24 -  
25 -log-error=/var/log/mysqld.log  
26 -pid-file=/var/run/mysqld/mysqld.pid  
sei/Dockerfile
1 ########################################################### 1 ###########################################################
2 -# Dockerfile de construção do container WebApp  
3 -# utilizado pelo SEI e pelo SIP  
4 -#  
5 -# Baseado no CentOS 6.X 2 +# Dockerfile de construção do container WebApp utilizado pelo SEI e pelo SIP
6 ############################################################ 3 ############################################################
7 4
8 # Definição da imagem de base para o CentOS 6.X 5 # Definição da imagem de base para o CentOS 6.X
@@ -13,62 +10,34 @@ MAINTAINER PEN - Processo Eletrônico Nacional @@ -13,62 +10,34 @@ MAINTAINER PEN - Processo Eletrônico Nacional
13 10
14 ################## INICIO DA INSTALACAO ###################### 11 ################## INICIO DA INSTALACAO ######################
15 # Instalação do SEI seguindo as recomendações descritas na documentação do SEI 12 # Instalação do SEI seguindo as recomendações descritas na documentação do SEI
16 -# Ref: https://processoeletronico.gov.br/projects/sei/wiki  
17 13
18 -# Instalação do servidor web Apache 2.2, memcache e demais componentes  
19 -RUN yum install -y epel-release && \  
20 - yum -y update && \  
21 - yum -y install httpd-2.2.* mysql-5.1.* memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 dos2unix crontabs \  
22 - 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 \  
23 - php-odbc php-pdo php-pecl-apc php-pspell php-zlib php-snmp php-soap php-xml php-xmlrpc php-zts php-devel \  
24 - php-pecl-apc-devel php-pecl-memcache php-calendar php-shmop php-intl \  
25 - php-mcrypt php-pecl-xdebug \  
26 - supervisor gearmand libgearman libgearman-devel php-pecl-gearman && \  
27 - yum -y clean all  
28 -  
29 -  
30 -# Configuração do charset do Apache  
31 -RUN echo "AddDefaultCharset iso-8859-1" | tee -a /etc/httpd/conf/httpd.conf 14 +ENV TERM xterm
32 15
33 -# Correção do bug do VirtualBox relacionado ao Sendfile. http://docs.vagrantup.com/v2/synced-folders/virtualbox.html  
34 -RUN echo "EnableSendfile Off" | tee -a /etc/httpd/conf/httpd.conf 16 +COPY install.sh /install.sh
35 17
36 -# Instalação do componentes UploadProgress  
37 -RUN pecl install uploadprogress && \  
38 - echo "extension=uploadprogress.so" >> /etc/php.d/uploadprogress.ini 18 +RUN bash /install.sh
39 19
40 # Configuração dos parâmetros do SEI e SIP 20 # Configuração dos parâmetros do SEI e SIP
41 -ADD ConfiguracaoSEI.php /opt/sei/ConfiguracaoSEI.php  
42 -ADD ConfiguracaoSip.php /opt/sip/ConfiguracaoSip.php 21 +COPY ConfiguracaoSEI.php /ConfiguracaoSEI.php
  22 +COPY ConfiguracaoSip.php /ConfiguracaoSip.php
43 23
44 # Copia arquivos necessários para a instalação 24 # Copia arquivos necessários para a instalação
45 -ADD sei.ini /etc/php.d/sei.ini  
46 -ADD xdebug.ini /etc/php.d/xdebug.ini  
47 -ADD sei.conf /etc/httpd/conf.d/sei.conf 25 +COPY sei.ini /etc/php.d/sei.ini
  26 +COPY xdebug.ini /etc/php.d/xdebug.ini
  27 +COPY sei.conf /etc/httpd/conf.d/sei.conf
48 28
49 # Configuração do Gearman e Supervisor, componentes necessários para a integração do SEI com Processo Eletrônico Nacional 29 # Configuração do Gearman e Supervisor, componentes necessários para a integração do SEI com Processo Eletrônico Nacional
50 -ADD supervisord.conf /etc/supervisord.conf  
51 -  
52 -RUN mkdir -p /var/sei/arquivos && \  
53 - chmod -R 777 /var/sei/arquivos  
54 -  
55 -# Configuração dos serviços de background do Cron  
56 -RUN mkdir /var/log/sei  
57 -RUN sed -i '/session required pam_loginuid.so/c\#session required pam_loginuid.so' /etc/pam.d/crond  
58 -RUN echo "0 * * * * 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  
59 -RUN echo "0 * * * * 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 30 +COPY supervisord.conf /etc/supervisord.conf
60 31
61 # Script de inicialização do container entry-point 32 # Script de inicialização do container entry-point
62 -ADD entrypoint.sh /entrypoint.sh  
63 -RUN dos2unix /entrypoint.sh && chmod +x /entrypoint.sh 33 +COPY entrypoint.sh /entrypoint.sh
  34 +RUN chmod +x /entrypoint.sh
64 35
65 ##################### FIM DA INSTALACAO ##################### 36 ##################### FIM DA INSTALACAO #####################
66 37
67 -# Definição do terminal a ser utilizado  
68 -ENV TERM xterm  
69 -  
70 # Exposição da porta de conexão ao Apache 38 # Exposição da porta de conexão ao Apache
71 EXPOSE 80 39 EXPOSE 80
72 40
73 # Inicialização dos serviços Apache e Memcache 41 # Inicialização dos serviços Apache e Memcache
74 CMD ["/entrypoint.sh"] 42 CMD ["/entrypoint.sh"]
  43 +
sei/entrypoint.sh
1 #!/usr/bin/env bash 1 #!/usr/bin/env bash
2 2
  3 +echo "127.0.0.1 sei_www" >> /etc/hosts
3 echo "127.0.0.1 sip_www" >> /etc/hosts 4 echo "127.0.0.1 sip_www" >> /etc/hosts
4 5
5 -# Configura localização correta da infra_php  
6 -#if [ -d /mnt/sei/src/infra/infra_php ]; then dir_infra_php="/mnt/sei/src/infra/infra_php"; else dir_infra_php="/mnt/sei/src/infra_php"; fi  
7 -#ln -sf $dir_infra_php /var/www/html/  
8 -  
9 -# Configura localização correta da infra_js  
10 -#if [ -d /mnt/sei/src/infra/infra_js ]; then dir_infra_js="/mnt/sei/src/infra/infra_js"; else dir_infra_js="/mnt/sei/src/infra_js"; fi  
11 -#ln -sf $dir_infra_js /var/www/html/  
12 -  
13 -# Configura localização correta da infra_css  
14 -#if [ -d /mnt/sei/src/infra/infra_css ]; then dir_infra_css="/mnt/sei/src/infra/infra_css"; else dir_infra_css="/mnt/sei/src/infra_css"; fi  
15 -#ln -sf $dir_infra_css /var/www/html/  
16 -  
17 # Atribuição dos parâmetros de configuração do SEI 6 # Atribuição dos parâmetros de configuração do SEI
18 if [ -f /opt/sei/config/ConfiguracaoSEI.php ] && [ ! -f /opt/sei/config/ConfiguracaoSEI.php~ ]; then 7 if [ -f /opt/sei/config/ConfiguracaoSEI.php ] && [ ! -f /opt/sei/config/ConfiguracaoSEI.php~ ]; then
19 mv /opt/sei/config/ConfiguracaoSEI.php /opt/sei/config/ConfiguracaoSEI.php~ 8 mv /opt/sei/config/ConfiguracaoSEI.php /opt/sei/config/ConfiguracaoSEI.php~
@@ -32,25 +21,19 @@ if [ ! -f /opt/sip/config/ConfiguracaoSip.php ]; then @@ -32,25 +21,19 @@ if [ ! -f /opt/sip/config/ConfiguracaoSip.php ]; then
32 cp /ConfiguracaoSip.php /opt/sip/config/ConfiguracaoSip.php 21 cp /ConfiguracaoSip.php /opt/sip/config/ConfiguracaoSip.php
33 fi 22 fi
34 23
35 -# Criação do diretório padrão de upload de arquivos  
36 -#SEI  
37 -chown -R www-data.www-data /opt/sei  
38 -chown -R www-data.www-data /opt/infra  
39 -chown -R www-data.www-data /opt/sip 24 +# Ajustes de permissões diversos
40 chmod +x /opt/sei/bin/wkhtmltopdf-amd64 25 chmod +x /opt/sei/bin/wkhtmltopdf-amd64
41 chmod -R 777 /opt/sei/temp 26 chmod -R 777 /opt/sei/temp
42 chmod -R 777 /opt/sip/temp 27 chmod -R 777 /opt/sip/temp
43 chmod -R 777 /var/sei/arquivos 28 chmod -R 777 /var/sei/arquivos
44 29
45 -# Inicialização do serviço de cache  
46 -#/etc/init.d/memcached start  
47 -  
48 # Inicialização das rotinas de agendamento 30 # Inicialização das rotinas de agendamento
49 -service cron start 31 +/etc/init.d/rsyslog start
  32 +/etc/init.d/crond start
50 33
51 # Inicialização do Gearman e Supervisor, componentes para integração com Processo Eletrônico Nacional 34 # Inicialização do Gearman e Supervisor, componentes para integração com Processo Eletrônico Nacional
52 -gearmand &  
53 -service supervisor start 35 +/etc/init.d/gearmand start
  36 +/etc/init.d/supervisord start
54 37
55 # Inicialização do servidor web 38 # Inicialização do servidor web
56 -apache2-foreground 39 +/usr/sbin/httpd -DFOREGROUND
sei/install.sh
@@ -2,20 +2,27 @@ @@ -2,20 +2,27 @@
2 2
3 set -e 3 set -e
4 4
5 -apt-get -y update 5 +yum install -y epel-release && yum -y update
6 6
7 -apt-get -y install mysql-client wget unzip openjdk-7-jre bzip2 cron \  
8 - php5-common php-pear php5-gd php5-intl php5-ldap php5-mysql php5-memcached php5-curl php5-json php5-dev php5-xdebug php5-mcrypt \  
9 - php-calendar php-soap php-gettext php-pclzip php-file \  
10 - libapache2-mod-php5filter 7 +wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  8 +wget https://centos6.iuscommunity.org/ius-release.rpm
  9 +rpm -Uvh ius-release*.rpm
  10 +
  11 +yum -y update
  12 +
  13 +yum -y install httpd24u mysql56u memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 crontabs
  14 +
  15 +# Instalação do PHP e demais extenções necessárias para o projeto
  16 +yum -y install php56u php56u-common php56u-cli php56u-pear php56u-bcmath php56u-gd php56u-gmp php56u-imap php56u-intl php56u-ldap php56u-mbstring php56u-mysqli \
  17 + php56u-odbc php56u-pdo php56u-pecl-apc php56u-pspell php56u-zlib php56u-snmp php56u-soap php56u-xml php56u-xmlrpc php56u-zts php56u-devel \
  18 + php56u-pecl-apc-devel php56u-pecl-memcache php56u-calendar php56u-shmop php56u-intl php56u-mcrypt php56u-pecl-xdebug
11 19
12 # Instalação do componentes UploadProgress 20 # Instalação do componentes UploadProgress
13 -pecl install uploadprogress  
14 -echo "extension=uploadprogress.so" > /etc/php5/mods-available/uploadprogress.ini 21 +pecl install uploadprogress && \
  22 +echo "extension=uploadprogress.so" >> /etc/php.d/uploadprogress.ini
15 23
16 -# Instalação do Supervisor e Gearman para suporte à integração com o PEN  
17 -apt-get -y install supervisor  
18 -apt-get -y install gearman libgearman7 php5-gearman 24 +# Instalação de componentes para teste do Barramento de Seriços do PEN
  25 +yum -y install supervisor gearmand libgearman libgearman-devel php56u-pecl-gearman
19 26
20 # Configuração de permissão do diretório de arquivos 27 # Configuração de permissão do diretório de arquivos
21 mkdir -p /var/sei/arquivos && \ 28 mkdir -p /var/sei/arquivos && \
@@ -23,9 +30,12 @@ chmod -R 777 /var/sei/arquivos @@ -23,9 +30,12 @@ chmod -R 777 /var/sei/arquivos
23 30
24 # Configuração dos serviços de background do Cron 31 # Configuração dos serviços de background do Cron
25 mkdir /var/log/sei 32 mkdir /var/log/sei
26 -echo "0 * * * * root /usr/bin/php -c /etc/php.ini /opt/sei/scripts/AgendamentoTarefaSEI.php 2>&1 >> /var/log/sei/agendamento_sei.log" >> /etc/cron.d/sei  
27 -echo "0 * * * * root /usr/bin/php -c /etc/php.ini /opt/sip/scripts/AgendamentoTarefaSip.php 2>&1 >> /var/log/sip/agendamento_sip.log" >> /etc/cron.d/sip 33 +sed -i '/session required pam_loginuid.so/c\#session required pam_loginuid.so' /etc/pam.d/crond
  34 +echo "0 * * * * root /usr/bin/php -c /etc/php.ini /opt/sei/scripts/AgendamentoTarefaSEI.php 2>&1 >> /var/log/sei/agendamento_sei.log" > /etc/cron.d/sei
  35 +echo "0 * * * * root /usr/bin/php -c /etc/php.ini /opt/sip/scripts/AgendamentoTarefaSip.php 2>&1 >> /var/log/sip/agendamento_sip.log" > /etc/cron.d/sip
28 echo "00 01 * * * root rm -rf /opt/sei/temp/*" >> /etc/cron.d/sei 36 echo "00 01 * * * root rm -rf /opt/sei/temp/*" >> /etc/cron.d/sei
29 echo "00 01 * * * root rm -rf /opt/sip/temp/*" >> /etc/cron.d/sip 37 echo "00 01 * * * root rm -rf /opt/sip/temp/*" >> /etc/cron.d/sip
30 38
  39 +yum -y clean all
  40 +
31 exit 0 41 exit 0
sei/supervisord.conf
1 1
  2 +[supervisord]
  3 +http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
  4 +;http_port=127.0.0.1:9001 ; (alternately, ip_address:port specifies AF_INET)
  5 +;sockchmod=0700 ; AF_UNIX socketmode (AF_INET ignore, default 0700)
  6 +;sockchown=nobody.nogroup ; AF_UNIX socket uid.gid owner (AF_INET ignores)
  7 +;umask=022 ; (process file creation umask;default 022)
  8 +logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
  9 +logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
  10 +logfile_backups=10 ; (num of main logfile rotation backups;default 10)
  11 +loglevel=info ; (logging level;default info; others: debug,warn)
  12 +pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
  13 +nodaemon=false ; (start in foreground if true;default false)
  14 +minfds=1024 ; (min. avail startup file descriptors;default 1024)
  15 +minprocs=200 ; (min. avail process descriptors;default 200)
  16 +
  17 +;nocleanup=true ; (don't clean up tempfiles at start;default false)
  18 +;http_username=user ; (default is no username (open system))
  19 +;http_password=123 ; (default is no password (open system))
  20 +;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP)
  21 +;user=chrism ; (default is current user, required if root)
  22 +;directory=/tmp ; (default is not to cd during start)
  23 +;environment=KEY=value ; (key value pairs to add to environment)
  24 +
  25 +[supervisorctl]
  26 +serverurl=unix:///var/tmp/supervisor.sock ; use a unix:// URL for a unix socket
  27 +;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
  28 +;username=chris ; should be same as http_username if set
  29 +;password=123 ; should be same as http_password if set
  30 +;prompt=mysupervisor ; cmd line prompt (default "supervisor")
  31 +
  32 +; The below sample program section shows all possible program subsection values,
  33 +; create one or more 'real' program: sections to be able to control them under
  34 +; supervisor.
  35 +
  36 +;[program:theprogramname]
  37 +;command=/bin/cat ; the program (relative uses PATH, can take args)
  38 +;priority=999 ; the relative start priority (default 999)
  39 +;autostart=true ; start at supervisord start (default: true)
  40 +;autorestart=true ; retstart at unexpected quit (default: true)
  41 +;startsecs=10 ; number of secs prog must stay running (def. 10)
  42 +;startretries=3 ; max # of serial start failures (default 3)
  43 +;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
  44 +;stopsignal=QUIT ; signal used to kill process (default TERM)
  45 +;stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
  46 +;user=chrism ; setuid to this UNIX account to run the program
  47 +;log_stdout=true ; if true, log program stdout (default true)
  48 +;log_stderr=true ; if true, log program stderr (def false)
  49 +;logfile=/var/log/cat.log ; child log path, use NONE for none; default AUTO
  50 +;logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  51 +;logfile_backups=10 ; # of logfile backups (default 10)
  52 +
2 [program:sei_processar_pendencias] 53 [program:sei_processar_pendencias]
3 command=/usr/bin/php -c /etc/php.ini /var/www/html/sei/modulos/pen/rn/ProcessarPendenciasRN.php 54 command=/usr/bin/php -c /etc/php.ini /var/www/html/sei/modulos/pen/rn/ProcessarPendenciasRN.php
4 numprocs=1 55 numprocs=1
5 directory=/var/www/html/sei/ 56 directory=/var/www/html/sei/
6 autostart=true 57 autostart=true
7 autorestart=true 58 autorestart=true
  59 +log_stderr=true
8 stdout_logfile=/tmp/sei.log 60 stdout_logfile=/tmp/sei.log
9 stdout_logfile_maxbytes=1MB 61 stdout_logfile_maxbytes=1MB
10 stderr_logfile=/tmp/sei_error.log 62 stderr_logfile=/tmp/sei_error.log
@@ -16,6 +68,7 @@ numprocs=1 @@ -16,6 +68,7 @@ numprocs=1
16 directory=/var/www/html/sei/ 68 directory=/var/www/html/sei/
17 autostart=true 69 autostart=true
18 autorestart=true 70 autorestart=true
  71 +log_stderr=true
19 stdout_logfile=/tmp/sei.log 72 stdout_logfile=/tmp/sei.log
20 stdout_logfile_maxbytes=1MB 73 stdout_logfile_maxbytes=1MB
21 stderr_logfile=/tmp/sei_error.log 74 stderr_logfile=/tmp/sei_error.log
solr/Dockerfile
@@ -2,17 +2,16 @@ @@ -2,17 +2,16 @@
2 # Dockerfile de construção do container Solr utilizado pelo SEI e pelo SIP # 2 # Dockerfile de construção do container Solr utilizado pelo SEI e pelo SIP #
3 ############################################################################ 3 ############################################################################
4 4
5 -# Definição da imagem de base para o CentOS 6.X 5 +# Definição da imagem de base para o OpenJDK 8
6 FROM openjdk:8 6 FROM openjdk:8
7 7
8 # Autor e mantenedor do container 8 # Autor e mantenedor do container
9 MAINTAINER PEN - Processo Eletrônico Nacional 9 MAINTAINER PEN - Processo Eletrônico Nacional
10 10
11 -# Definição do terminal a ser utilizado  
12 -ENV TERM xterm  
13 -  
14 ################## INICIO DA INSTALACAO ###################### 11 ################## INICIO DA INSTALACAO ######################
15 12
  13 +ENV TERM xterm
  14 +
16 # Obtenção do pacote de instalação do Solr 4.0 15 # Obtenção do pacote de instalação do Solr 4.0
17 COPY install.sh /install.sh 16 COPY install.sh /install.sh
18 COPY solr-6.1.0.tgz /tmp/ 17 COPY solr-6.1.0.tgz /tmp/