Commit d59915d4ec14487883338bcddb976c659bd7030d
1 parent
563619a4
Exists in
master
Correção do problema de lock durante provisionamento do ambiente
O problema em questão foi gerado devido à bug do Vagrant/VirtualBox com a versão do centos 6.5, vm utilizada como host do Docker. O problema foi corrigido através da atualização da versão do host para o CentOS 7, versão que não possui o bug com VirtualBox. Também foram realizadas correções de encoding dos arquivos de provisionamento, atualização da vm host e algumas otimizações no processo.
Showing
10 changed files
with
754 additions
and
141 deletions
Show diff stats
Vagrantfile
1 | -# -*- mode: ruby -*- | |
2 | -# vi: set ft=ruby : | |
3 | -require "yaml" | |
4 | - | |
5 | -# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
6 | -VAGRANTFILE_API_VERSION = "2" | |
7 | - | |
8 | -# Parâmetros de customização do ambiente de desenvolvimento | |
9 | -params = if File.exists?("Vagrantfile.conf") then YAML::load_file("Vagrantfile.conf") else {} end | |
10 | -params_source_dir = params["source_dir"] || "../sei" | |
11 | -params_script_sei = params["script_sei"] || "../sei-db-ref-executivo/sei_2_5_2_BD_Ref_Exec.sql" | |
12 | -params_script_sip = params["script_sip"] || "../sei-db-ref-executivo/sip_2_5_2_BD_Ref_Exec.sql" | |
13 | -params_memoria_vm = params["memoria_vm"] || "2048" | |
14 | -params_repo_arquivos = params["repositorio_arquivos"] || "../sei-arquivos" | |
15 | - | |
16 | -Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
17 | - # All Vagrant configuration is done here. The most common configuration | |
18 | - # options are documented and commented below. For a complete reference, | |
19 | - # please see the online documentation at vagrantup.com. | |
20 | - | |
21 | - # Atribuição do hostname da máquina virtual | |
22 | - config.vm.hostname = "sei-vagrant" | |
23 | - | |
24 | - # Every Vagrant virtual environment requires a box to build off of. | |
25 | - config.vm.box = "guilhermeadc/centos65" | |
26 | - config.vm.box_download_checksum = "76a2a61de2d89f6cfd4d795e57cc4406" | |
27 | - config.vm.box_download_checksum_type = "md5" | |
28 | - | |
29 | - # Disable automatic box update checking. If you disable this, then | |
30 | - # boxes will only be checked for updates when the user runs | |
31 | - # `vagrant box outdated`. This is not recommended. | |
32 | - config.vm.box_check_update = true | |
33 | - | |
34 | - # Configuração do redirecionamento entre Máquina Virtual e Host | |
35 | - # Necessário permissões de root para utilizar a porta 80 (> 1024) | |
36 | - config.vm.network :forwarded_port, guest: 80, host: 80 # SIP e SEI (Apache) | |
37 | - config.vm.network :forwarded_port, guest: 3306, host: 3306 # Banco de Dados (Mysql) | |
38 | - config.vm.network :forwarded_port, guest: 8080, host: 8080 # Jod Converter (Tomcat) | |
39 | - config.vm.network :forwarded_port, guest: 8983, host: 8983 # Solr Indexer (Jetty) | |
40 | - | |
41 | - # Diretórios compartilhados com a durante a execução | |
42 | - config.vm.synced_folder ".", "/mnt/sei/ops" | |
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"] | |
45 | - config.vm.synced_folder File.dirname(params_script_sei), "/mnt/sei/db_sei" | |
46 | - config.vm.synced_folder File.dirname(params_script_sip), "/mnt/sei/db_sip" | |
47 | - | |
48 | - # Provider-specific configuration so you can fine-tune various | |
49 | - # backing providers for Vagrant. These expose provider-specific options. | |
50 | - config.vm.provider "virtualbox" do |vb| | |
51 | - # Don't boot with headless mode | |
52 | - # vb.gui = true | |
53 | - # Use VBoxManage to customize the VM. For example to change memory: | |
54 | - vb.customize ["modifyvm", :id, "--memory", params_memoria_vm, "--usb", "off", "--audio", "none"] | |
55 | - end | |
56 | - | |
57 | - $script_banco_dados = <<SCRIPT | |
58 | - mkdir -p /mnt/sei/ops/mysql/.tmp/ | |
59 | - cp /mnt/sei/db_sei/$1 /mnt/sei/ops/mysql/.tmp/sei_mysql.sql | |
60 | - cp /mnt/sei/db_sip/$2 /mnt/sei/ops/mysql/.tmp/sip_mysql.sql | |
61 | - cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /mnt/sei/src/sei/ConfiguracaoSEI.php | |
62 | - cp /mnt/sei/ops/sei/ConfiguracaoSip.php /mnt/sei/src/sip/ConfiguracaoSip.php | |
63 | -SCRIPT | |
64 | - | |
65 | - config.vm.provision "shell", | |
66 | - inline: $script_banco_dados, | |
67 | - args: [File.basename(params_script_sei), File.basename(params_script_sip)] | |
68 | - | |
69 | - # Provisionamento da Máquina Virtual responsável por manter os containers do Docker | |
70 | - config.vm.provision "docker" do |docker| | |
71 | - | |
72 | - # Constrói imagens dos containers utilizados no provicionamento | |
73 | - docker.build_image "/mnt/sei/ops/mysql", args: "-t 'sei.gov/mysql'" | |
74 | - docker.build_image "/mnt/sei/ops/sei", args: "-t 'sei.gov/sei'" | |
75 | - docker.build_image "/mnt/sei/ops/solr", args: "-t 'sei.gov/solr'" | |
76 | - docker.build_image "/mnt/sei/ops/jod", args: "-t 'sei.gov/jod'" | |
77 | - | |
78 | - # Provisiona docker containers na máquina virtual | |
79 | - # docker run -it --name sei_data -v /mnt/sei/arquivos:/var/sei/arquivos centos:centos6 true | |
80 | - docker.run "sei_data", image: "centos:centos6", | |
81 | - args: "-v /mnt/sei/arquivos:/var/sei/arquivos", | |
82 | - cmd: "true" | |
83 | - | |
84 | - # docker run -it --name sei_db -p 3306:3306 --rm sei.gov/mysql:latest | |
85 | - docker.run "sei_db", image: "sei.gov/mysql:latest", | |
86 | - daemonize: true, | |
87 | - args: "-p 3306:3306" | |
88 | - | |
89 | - # docker run -it --name sei_solr -p 8983:8983 --rm -v /mnt/sei/src/sei/solr:/mnt/sei/index sei.gov/solr:latest | |
90 | - docker.run "sei_solr", image: "sei.gov/solr:latest", | |
91 | - daemonize: true, | |
92 | - args: "-p 8983:8983 -v /mnt/sei/src/sei/solr:/mnt/sei/index" | |
93 | - | |
94 | - # docker run -it --name sei_jod -p 8080:8080 --rm sei.gov/jod:latest | |
95 | - docker.run "sei_jod", image: "sei.gov/jod:latest", | |
96 | - daemonize: true, | |
97 | - args: "-p 8080:8080" | |
98 | - | |
99 | - # docker run -it --name sei_www -p 80:80 --rm --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 sei.gov/sei:latest | |
100 | - docker.run "sei_www", image: "sei.gov/sei:latest", | |
101 | - daemonize: true, | |
102 | - 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" | |
103 | - end | |
104 | - | |
105 | - # Limpeza de arquivos temporários criados durante o provisionamento do sistema | |
106 | - config.vm.provision "shell", inline: "rm -rf /mnt/sei/ops/mysql/.tmp" | |
107 | - | |
108 | - # Inicialização dos containers em caso de reinicialização da máquina host | |
109 | - config.vm.provision "shell", run: "always", inline: "docker start sei_data sei_db sei_solr sei_jod sei_www" | |
110 | -end | |
1 | +# -*- mode: ruby -*- | |
2 | +# vi: set ft=ruby : | |
3 | +require "yaml" | |
4 | + | |
5 | +# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
6 | +VAGRANTFILE_API_VERSION = "2" | |
7 | + | |
8 | +# Parâmetros de customização do ambiente de desenvolvimento | |
9 | +params = if File.exists?("Vagrantfile.conf") then YAML::load_file("Vagrantfile.conf") else {} end | |
10 | +params_source_dir = params["source_dir"] || "../sei" | |
11 | +params_script_sei = params["script_sei"] || "../sei-db-ref-executivo/sei_2_5_2_BD_Ref_Exec.sql" | |
12 | +params_script_sip = params["script_sip"] || "../sei-db-ref-executivo/sip_2_5_2_BD_Ref_Exec.sql" | |
13 | +params_memoria_vm = params["memoria_vm"] || "1024" | |
14 | +params_repo_arquivos = params["repositorio_arquivos"] || "../sei-arquivos" | |
15 | + | |
16 | +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
17 | + # All Vagrant configuration is done here. The most common configuration | |
18 | + # options are documented and commented below. For a complete reference, | |
19 | + # please see the online documentation at vagrantup.com. | |
20 | + | |
21 | + # Atribuição do hostname da máquina virtual | |
22 | + config.vm.hostname = "sei-vagrant" | |
23 | + | |
24 | + # Every Vagrant virtual environment requires a box to build off of. | |
25 | + # config.vm.box = "guilhermeadc/centos65" | |
26 | + # config.vm.box_download_checksum = "76a2a61de2d89f6cfd4d795e57cc4406" | |
27 | + # config.vm.box_download_checksum_type = "md5" | |
28 | + config.vm.box = "chef/centos-7.0" | |
29 | + | |
30 | + # Disable automatic box update checking. If you disable this, then | |
31 | + # boxes will only be checked for updates when the user runs | |
32 | + # `vagrant box outdated`. This is not recommended. | |
33 | + config.vm.box_check_update = true | |
34 | + | |
35 | + # Configuração do redirecionamento entre Máquina Virtual e Host | |
36 | + # Necessário permissões de root para utilizar a porta 80 (> 1024) | |
37 | + config.vm.network :forwarded_port, guest: 80, host: 80 # SIP e SEI (Apache) | |
38 | + config.vm.network :forwarded_port, guest: 3306, host: 3306 # Banco de Dados (Mysql) | |
39 | + config.vm.network :forwarded_port, guest: 8080, host: 8080 # Jod Converter (Tomcat) | |
40 | + config.vm.network :forwarded_port, guest: 8983, host: 8983 # Solr Indexer (Jetty) | |
41 | + | |
42 | + # Diretórios compartilhados com a durante a execução | |
43 | + config.vm.synced_folder ".", "/mnt/sei/ops" | |
44 | + config.vm.synced_folder params_source_dir, "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"] | |
45 | + config.vm.synced_folder params_repo_arquivos, "/mnt/sei/arquivos", create: true, mount_options: ["dmode=777", "fmode=777"] | |
46 | + config.vm.synced_folder File.dirname(params_script_sei), "/mnt/sei/db_sei" | |
47 | + config.vm.synced_folder File.dirname(params_script_sip), "/mnt/sei/db_sip" | |
48 | + | |
49 | + # Provider-specific configuration so you can fine-tune various | |
50 | + # backing providers for Vagrant. These expose provider-specific options. | |
51 | + config.vm.provider "virtualbox" do |vb| | |
52 | + # Don't boot with headless mode | |
53 | + # vb.gui = true | |
54 | + # Use VBoxManage to customize the VM. For example to change memory: | |
55 | + vb.customize ["modifyvm", :id, "--memory", params_memoria_vm, "--usb", "off", "--audio", "none"] | |
56 | + end | |
57 | + | |
58 | + $script_banco_dados = <<SCRIPT | |
59 | + mkdir -p /mnt/sei/ops/mysql/.tmp/ | |
60 | + cp /mnt/sei/db_sei/$1 /mnt/sei/ops/mysql/.tmp/sei_mysql.sql | |
61 | + cp /mnt/sei/db_sip/$2 /mnt/sei/ops/mysql/.tmp/sip_mysql.sql | |
62 | + cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /mnt/sei/src/sei/ConfiguracaoSEI.php | |
63 | + cp /mnt/sei/ops/sei/ConfiguracaoSip.php /mnt/sei/src/sip/ConfiguracaoSip.php | |
64 | +SCRIPT | |
65 | + | |
66 | +# Atualização da VM de host do docker | |
67 | + config.vm.provision "shell", run: "always", inline: "yum -y update && yum -y upgrade" | |
68 | + | |
69 | + config.vm.provision "shell", | |
70 | + inline: $script_banco_dados, | |
71 | + args: [File.basename(params_script_sei), File.basename(params_script_sip)] | |
72 | + | |
73 | + # Provisionamento da Máquina Virtual responsável por manter os containers do Docker | |
74 | + config.vm.provision "docker" do |docker| | |
75 | + | |
76 | + # Constrói imagens dos containers utilizados no provicionamento | |
77 | + docker.build_image "/mnt/sei/ops/solr", args: "-t 'processoeletronico/solr'" | |
78 | + docker.build_image "/mnt/sei/ops/mysql", args: "-t 'processoeletronico/mysql'" | |
79 | + docker.build_image "/mnt/sei/ops/sei", args: "-t 'processoeletronico/sei'" | |
80 | + docker.build_image "/mnt/sei/ops/jod", args: "-t 'processoeletronico/jod'" | |
81 | + | |
82 | + # Provisiona docker containers na máquina virtual | |
83 | + # docker run -it --name sei_data -v /mnt/sei/arquivos:/var/sei/arquivos centos:centos6 true | |
84 | + docker.run "sei_data", image: "centos:centos6", | |
85 | + args: "-v /mnt/sei/arquivos:/var/sei/arquivos", | |
86 | + cmd: "true" | |
87 | + | |
88 | + # docker run -it --name sei_db -p 3306:3306 --rm processoeletronico/mysql:latest | |
89 | + docker.run "sei_db", image: "processoeletronico/mysql:latest", | |
90 | + daemonize: true, | |
91 | + args: "-p 3306:3306" | |
92 | + | |
93 | + # docker run -it --name sei_solr -p 8983:8983 --rm -v /mnt/sei/src/sei/solr:/mnt/sei/index processoeletronico/solr:latest | |
94 | + docker.run "sei_solr", image: "processoeletronico/solr:latest", | |
95 | + daemonize: true, | |
96 | + args: "-p 8983:8983 -v /mnt/sei/src/sei/solr:/mnt/sei/index" | |
97 | + | |
98 | + # docker run -it --name sei_jod -p 8080:8080 --rm processoeletronico/jod:latest | |
99 | + docker.run "sei_jod", image: "processoeletronico/jod:latest", | |
100 | + daemonize: true, | |
101 | + args: "-p 8080:8080" | |
102 | + | |
103 | + # docker run -it --name sei_www -p 80:80 --rm --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 | |
104 | + docker.run "sei_www", image: "processoeletronico/sei:latest", | |
105 | + daemonize: true, | |
106 | + 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" | |
107 | + end | |
108 | + | |
109 | + # Limpeza de arquivos temporários criados durante o provisionamento do sistema | |
110 | + config.vm.provision "shell", inline: "rm -rf /mnt/sei/ops/mysql/.tmp" | |
111 | + | |
112 | + # Inicialização dos containers em caso de reinicialização da máquina host | |
113 | + config.vm.provision "shell", run: "always", inline: "docker start sei_db sei_solr sei_jod sei_www" | |
114 | +end | |
111 | 115 | \ No newline at end of file | ... | ... |
Vagrantfile.conf.example
jod/Dockerfile
... | ... | @@ -27,7 +27,8 @@ RUN yum -y update libreoffice libreoffice-headless && \ |
27 | 27 | yum install -y libreoffice libreoffice-headless |
28 | 28 | |
29 | 29 | # Instalação da api de serviços de conversão de documentos |
30 | -RUN wget -q -O /opt/jodconverter-tomcat-2.2.2.zip http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/jodconverter-tomcat-2.2.2.zip/download | |
30 | +ADD jodconverter-tomcat-2.2.2.zip /opt/ | |
31 | +# RUN wget -q -O /opt/jodconverter-tomcat-2.2.2.zip http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/jodconverter-tomcat-2.2.2.zip/download | |
31 | 32 | RUN unzip /opt/jodconverter-tomcat-2.2.2.zip -d /opt && rm /opt/jodconverter-tomcat-2.2.2.zip |
32 | 33 | |
33 | 34 | # Script de inicialização dos serviços | ... | ... |
No preview for this file type
jod/run.sh
1 | -#!/bin/bash | |
1 | +#!/usr/bin/env bash | |
2 | + | |
2 | 3 | SOFFICE_PATH=/usr/bin/soffice |
3 | 4 | TOMCAT6_PATH=/opt/jodconverter-tomcat-2.2.2/bin/catalina.sh |
4 | 5 | |
... | ... | @@ -6,4 +7,4 @@ echo "Iniciando o serviço LibreOffice headless" |
6 | 7 | $SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1 |
7 | 8 | |
8 | 9 | echo "Iniciando o serviço Tomcat 6" |
9 | -$TOMCAT6_PATH run | |
10 | 10 | \ No newline at end of file |
11 | +$TOMCAT6_PATH run | ... | ... |
sei/Dockerfile
... | ... | @@ -16,14 +16,14 @@ MAINTAINER PEN - Processo Eletrônico Nacional |
16 | 16 | # Ref: http://sei.processoeletronico.gov.br/wiki/manual_de_instalacao#<SESSAO DE INSTALAÇÃO DO SEI e SIP> |
17 | 17 | |
18 | 18 | # Instalação do servidor web Apache 2.2, memcache e demais componentes |
19 | -RUN yum -y update httpd-2.2.* mysql-5.1.* memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 && \ | |
19 | +RUN yum -y update && \ | |
20 | 20 | yum -y install httpd-2.2.* mysql-5.1.* memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 |
21 | 21 | |
22 | 22 | # Configuração do charset do Apache |
23 | 23 | RUN echo "AddDefaultCharset iso-8859-1" | tee -a /etc/httpd/conf/httpd.conf |
24 | 24 | |
25 | 25 | # Instalação do PHP 5 e demais bibliotecas |
26 | -RUN yum -y update php-* && \ | |
26 | +RUN yum -y update && \ | |
27 | 27 | yum -y install php-5.3.* php-common php-cli php-pear php-bcmath php-gd php-gmp \ |
28 | 28 | php-imap php-intl php-ldap php-mbstring php-mysql php-odbc php-pdo php-pecl-apc \ |
29 | 29 | php-pspell php-zlib php-snmp php-soap php-xml php-xmlrpc php-zts php-devel \ |
... | ... | @@ -34,8 +34,8 @@ RUN pecl install uploadprogress && \ |
34 | 34 | echo "extension=uploadprogress.so" >> /etc/php.d/uploadprogress.ini |
35 | 35 | |
36 | 36 | # Configuração dos parâmetros do SEI e SIP |
37 | -ADD ConfiguracaoSEI.php /var/www/html/sei/ConfiguracaoSEI.php | |
38 | -ADD ConfiguracaoSip.php /var/www/html/sip/ConfiguracaoSip.php | |
37 | +ADD ConfiguracaoSEI.php /opt/sei/ConfiguracaoSEI.php | |
38 | +ADD ConfiguracaoSip.php /opt/sip/ConfiguracaoSip.php | |
39 | 39 | |
40 | 40 | # Copia arquivos necessários para a instalação |
41 | 41 | ADD sei.ini /etc/php.d/sei.ini |
... | ... | @@ -48,4 +48,4 @@ RUN chmod +x /run.sh |
48 | 48 | EXPOSE 80 |
49 | 49 | |
50 | 50 | # Inicialização dos serviços Apache e Memcache |
51 | 51 | -CMD ["/run.sh"] |
52 | +CMD ["/run.sh"] | |
52 | 53 | \ No newline at end of file | ... | ... |
sei/run.sh
1 | -#!/bin/bash | |
1 | +#!/usr/bin/env bash | |
2 | 2 | |
3 | 3 | echo "127.0.0.1 sip_www" | tee -a /etc/hosts |
4 | 4 | |
5 | 5 | # Atribuição dos parâmetros de configuração do SEI |
6 | -cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /var/www/html/sei/ConfiguracaoSEI.php | |
7 | -cp /mnt/sei/ops/sip/ConfiguracaoSip.php /var/www/html/sip/ConfiguracaoSip.php | |
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 | 8 | |
9 | 9 | # Criação do diretório padrão de upload de arquivos |
10 | 10 | mkdir /var/www/html/sei/upload && chmod -R 666 /var/www/html/sei/upload |
11 | 11 | mkdir /var/www/html/sip/upload && chmod -R 666 /var/www/html/sip/upload |
12 | 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 | + | |
13 | 16 | # Inicialização do serviço de cache |
14 | 17 | /etc/init.d/memcached start 2>&1 > /dev/null |
15 | 18 | ... | ... |
solr/Dockerfile
... | ... | @@ -15,22 +15,18 @@ MAINTAINER PEN - Processo Eletrônico Nacional |
15 | 15 | # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI |
16 | 16 | # Ref: http://<WIKI DO PROJETO>#<SESSAO DE INSTALAÇÃO DO MYSQL> |
17 | 17 | |
18 | -# Instalação do pacote Java JDK | |
19 | -RUN yum update -y java-1.7.0-openjdk && \ | |
20 | - yum install -y java-1.7.0-openjdk | |
21 | - | |
22 | -# Instalação dos utilitários utilizados no provisionamento | |
23 | -RUN yum install -y wget tar curl which | |
18 | +# Instalação do pacote Java JDK e utilitários utilizados no provisionamento | |
19 | +RUN yum update -y && \ | |
20 | + yum install -y java-1.7.0-openjdk wget tar curl which | |
24 | 21 | |
25 | 22 | # Criação de usuário de execução do serviço |
26 | 23 | RUN useradd solr |
27 | 24 | |
28 | 25 | # Obtenção do pacote de instalação do Solr 4.0 |
29 | -RUN wget -q -O /opt/solr-4.0.0.tgz http://archive.apache.org/dist/lucene/solr/4.0.0/apache-solr-4.0.0.tgz | |
26 | +ADD apache-solr-4.0.0.tgz /opt/ | |
30 | 27 | |
31 | 28 | # Instalação do Apache Solr |
32 | -RUN tar xvz -C /opt -f /opt/solr-4.0.0.tgz && mv /opt/apache-solr-4.0.0 /opt/solr && \ | |
33 | - chown -R solr:solr /opt/solr && rm /opt/solr-4.0.0.tgz | |
29 | +RUN mv /opt/apache-solr-4.0.0 /opt/solr && chown -R solr:solr /opt/solr | |
34 | 30 | |
35 | 31 | # Configuração dos parâmetros default |
36 | 32 | RUN echo "JAVA_OPTIONS='-Dsolr.solr.home=/opt/solr/example/solr $JAVA_OPTIONS'" | tee -a /etc/default/jetty && \ |
... | ... | @@ -74,18 +70,18 @@ RUN mkdir /var/opt/sei/sei-protocolos/conteudo && \ |
74 | 70 | |
75 | 71 | # Configuração dos links a instalação do Solr e o índice Protocolo |
76 | 72 | RUN ln -s /opt/solr/contrib/ /var/opt/sei/sei-protocolos/contrib && \ |
77 | - ln -s /opt/solr/dist/ /var/opt/sei/sei-protocolos/dist && \ | |
78 | - ln -s /opt/solr/example/lib/ /var/opt/sei/sei-protocolos/lib | |
73 | + ln -s /opt/solr/dist/ /var/opt/sei/sei-protocolos/dist && \ | |
74 | + ln -s /opt/solr/example/lib/ /var/opt/sei/sei-protocolos/lib | |
79 | 75 | |
80 | 76 | # Configuração dos links a instalação do Solr e o índice Base de Conhecimento |
81 | 77 | RUN ln -s /opt/solr/contrib/ /var/opt/sei/sei-bases-conhecimento/contrib && \ |
82 | - ln -s /opt/solr/dist/ /var/opt/sei/sei-bases-conhecimento/dist && \ | |
83 | - ln -s /opt/solr/example/lib/ /var/opt/sei/sei-bases-conhecimento/lib | |
78 | + ln -s /opt/solr/dist/ /var/opt/sei/sei-bases-conhecimento/dist && \ | |
79 | + ln -s /opt/solr/example/lib/ /var/opt/sei/sei-bases-conhecimento/lib | |
84 | 80 | |
85 | 81 | # Configuração dos links a instalação do Solr e o índice Publicações |
86 | 82 | RUN ln -s /opt/solr/contrib/ /var/opt/sei/sei-publicacoes/contrib && \ |
87 | - ln -s /opt/solr/dist/ /var/opt/sei/sei-publicacoes/dist && \ | |
88 | - ln -s /opt/solr/example/lib/ /var/opt/sei/sei-publicacoes/lib | |
83 | + ln -s /opt/solr/dist/ /var/opt/sei/sei-publicacoes/dist && \ | |
84 | + ln -s /opt/solr/example/lib/ /var/opt/sei/sei-publicacoes/lib | |
89 | 85 | |
90 | 86 | # Configuração de log e permissões de pastas |
91 | 87 | RUN mkdir /var/log/solr |
... | ... | @@ -93,15 +89,15 @@ RUN chown solr:solr -R /opt/solr /var/opt/sei /var/log/solr |
93 | 89 | |
94 | 90 | # Construção dos índices de protocolos do SEI |
95 | 91 | RUN service solr start && sleep 20 && \ |
96 | - curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=sei-protocolos&instanceDir=/var/opt/sei/sei-protocolos&config=sei-protocolos-config.xml&schema=sei-protocolos-schema.xml&dataDir=/var/opt/sei/sei-protocolos/conteudo' | |
92 | + curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=sei-protocolos&instanceDir=/var/opt/sei/sei-protocolos&config=sei-protocolos-config.xml&schema=sei-protocolos-schema.xml&dataDir=/var/opt/sei/sei-protocolos/conteudo' | |
97 | 93 | |
98 | 94 | # Construção dos índices da base de conhecimento do SEI |
99 | 95 | RUN service solr start && sleep 20 && \ |
100 | - curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=sei-bases-conhecimento&instanceDir=/var/opt/sei/sei-bases-conhecimento&config=sei-bases-conhecimento-config.xml&schema=sei-bases-conhecimento-schema.xml&dataDir=/var/opt/sei/sei-bases-conhecimento/conteudo' | |
96 | + curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=sei-bases-conhecimento&instanceDir=/var/opt/sei/sei-bases-conhecimento&config=sei-bases-conhecimento-config.xml&schema=sei-bases-conhecimento-schema.xml&dataDir=/var/opt/sei/sei-bases-conhecimento/conteudo' | |
101 | 97 | |
102 | 98 | # Construção dos índices de publicações do SEI |
103 | 99 | RUN service solr start && sleep 20 && \ |
104 | - curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=sei-publicacoes&instanceDir=/var/opt/sei/sei-publicacoes&config=sei-publicacoes-config.xml&schema=sei-publicacoes-schema.xml&dataDir=/var/opt/sei/sei-publicacoes/conteudo' | |
100 | + curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=sei-publicacoes&instanceDir=/var/opt/sei/sei-publicacoes&config=sei-publicacoes-config.xml&schema=sei-publicacoes-schema.xml&dataDir=/var/opt/sei/sei-publicacoes/conteudo' | |
105 | 101 | |
106 | 102 | # Construção dos índices de publicações do SEI |
107 | 103 | RUN service solr start && sleep 20 && \ |
... | ... | @@ -116,4 +112,4 @@ WORKDIR /opt/solr/example |
116 | 112 | EXPOSE 8983 |
117 | 113 | |
118 | 114 | # Inicialização dos serviços Apache e Memcache |
119 | 115 | -CMD ["java", "-jar", "start.jar"] |
116 | +CMD ["java", "-jar", "start.jar"] | |
120 | 117 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,605 @@ |
1 | +#!/usr/bin/env bash | |
2 | +# | |
3 | +# Startup script for jetty under *nix systems (it works under NT/cygwin too). | |
4 | + | |
5 | +# To get the service to restart correctly on reboot, uncomment below (3 lines): | |
6 | +# ======================== | |
7 | +# chkconfig: 3 99 99 | |
8 | +# description: Jetty 7 webserver | |
9 | +# processname: jetty | |
10 | +# ======================== | |
11 | + | |
12 | +# Configuration files | |
13 | +# | |
14 | +# /etc/default/jetty | |
15 | +# If it exists, this is read at the start of script. It may perform any | |
16 | +# sequence of shell commands, like setting relevant environment variables. | |
17 | +# | |
18 | +# $HOME/.jettyrc | |
19 | +# If it exists, this is read at the start of script. It may perform any | |
20 | +# sequence of shell commands, like setting relevant environment variables. | |
21 | +# | |
22 | +# /etc/jetty.conf | |
23 | +# If found, and no configurations were given on the command line, | |
24 | +# the file will be used as this script's configuration. | |
25 | +# Each line in the file may contain: | |
26 | +# - A comment denoted by the pound (#) sign as first non-blank character. | |
27 | +# - The path to a regular file, which will be passed to jetty as a | |
28 | +# config.xml file. | |
29 | +# - The path to a directory. Each *.xml file in the directory will be | |
30 | +# passed to jetty as a config.xml file. | |
31 | +# | |
32 | +# The files will be checked for existence before being passed to jetty. | |
33 | +# | |
34 | +# $JETTY_HOME/etc/jetty.xml | |
35 | +# If found, used as this script's configuration file, but only if | |
36 | +# /etc/jetty.conf was not present. See above. | |
37 | +# | |
38 | +# Configuration variables | |
39 | +# | |
40 | +# JAVA | |
41 | +# Command to invoke Java. If not set, java (from the PATH) will be used. | |
42 | +# | |
43 | +# JAVA_OPTIONS | |
44 | +# Extra options to pass to the JVM | |
45 | +# | |
46 | +# JETTY_HOME | |
47 | +# Where Jetty is installed. If not set, the script will try go | |
48 | +# guess it by first looking at the invocation path for the script, | |
49 | +# and then by looking in standard locations as $HOME/opt/jetty | |
50 | +# and /opt/jetty. The java system property "jetty.home" will be | |
51 | +# set to this value for use by configure.xml files, f.e.: | |
52 | +# | |
53 | +# <Arg><Property name="jetty.home" default="."/>/webapps/jetty.war</Arg> | |
54 | +# | |
55 | +# JETTY_PORT | |
56 | +# Override the default port for Jetty servers. If not set then the | |
57 | +# default value in the xml configuration file will be used. The java | |
58 | +# system property "jetty.port" will be set to this value for use in | |
59 | +# configure.xml files. For example, the following idiom is widely | |
60 | +# used in the demo config files to respect this property in Listener | |
61 | +# configuration elements: | |
62 | +# | |
63 | +# <Set name="Port"><Property name="jetty.port" default="8080"/></Set> | |
64 | +# | |
65 | +# Note: that the config file could ignore this property simply by saying: | |
66 | +# | |
67 | +# <Set name="Port">8080</Set> | |
68 | +# | |
69 | +# JETTY_RUN | |
70 | +# Where the jetty.pid file should be stored. It defaults to the | |
71 | +# first available of /var/run, /usr/var/run, JETTY_HOME and /tmp | |
72 | +# if not set. | |
73 | +# | |
74 | +# JETTY_PID | |
75 | +# The Jetty PID file, defaults to $JETTY_RUN/jetty.pid | |
76 | +# | |
77 | +# JETTY_ARGS | |
78 | +# The default arguments to pass to jetty. | |
79 | +# | |
80 | +# JETTY_USER | |
81 | +# if set, then used as a username to run the server as | |
82 | +# | |
83 | + | |
84 | +usage() | |
85 | +{ | |
86 | + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " | |
87 | + exit 1 | |
88 | +} | |
89 | + | |
90 | +[ $# -gt 0 ] || usage | |
91 | + | |
92 | + | |
93 | +################################################## | |
94 | +# Some utility functions | |
95 | +################################################## | |
96 | +findDirectory() | |
97 | +{ | |
98 | + local L OP=$1 | |
99 | + shift | |
100 | + for L in "$@"; do | |
101 | + [ "$OP" "$L" ] || continue | |
102 | + printf %s "$L" | |
103 | + break | |
104 | + done | |
105 | +} | |
106 | + | |
107 | +running() | |
108 | +{ | |
109 | + local PID=$(cat "$1" 2>/dev/null) || return 1 | |
110 | + kill -0 "$PID" 2>/dev/null | |
111 | +} | |
112 | + | |
113 | +started() | |
114 | +{ | |
115 | + # wait for 60s to see "STARTED" in PID file, needs jetty-started.xml as argument | |
116 | + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 | |
117 | + do | |
118 | + sleep 4 | |
119 | + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 | |
120 | + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 | |
121 | + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 | |
122 | + local PID=$(cat "$2" 2>/dev/null) || return 1 | |
123 | + kill -0 "$PID" 2>/dev/null || return 1 | |
124 | + echo -n ". " | |
125 | + done | |
126 | + | |
127 | + return 1; | |
128 | +} | |
129 | + | |
130 | + | |
131 | +readConfig() | |
132 | +{ | |
133 | + (( DEBUG )) && echo "Reading $1.." | |
134 | + source "$1" | |
135 | +} | |
136 | + | |
137 | + | |
138 | + | |
139 | +################################################## | |
140 | +# Get the action & configs | |
141 | +################################################## | |
142 | +CONFIGS=() | |
143 | +NO_START=0 | |
144 | +DEBUG=0 | |
145 | + | |
146 | +while [[ $1 = -* ]]; do | |
147 | + case $1 in | |
148 | + -d) DEBUG=1 ;; | |
149 | + esac | |
150 | + shift | |
151 | +done | |
152 | +ACTION=$1 | |
153 | +shift | |
154 | + | |
155 | +################################################## | |
156 | +# Read any configuration files | |
157 | +################################################## | |
158 | +ETC=/etc | |
159 | +if [ $UID != 0 ] | |
160 | +then | |
161 | + ETC=$HOME/etc | |
162 | +fi | |
163 | + | |
164 | +for CONFIG in $ETC/default/jetty{,7} $HOME/.jettyrc; do | |
165 | + if [ -f "$CONFIG" ] ; then | |
166 | + readConfig "$CONFIG" | |
167 | + fi | |
168 | +done | |
169 | + | |
170 | + | |
171 | +################################################## | |
172 | +# Set tmp if not already set. | |
173 | +################################################## | |
174 | +TMPDIR=${TMPDIR:-/tmp} | |
175 | + | |
176 | +################################################## | |
177 | +# Jetty's hallmark | |
178 | +################################################## | |
179 | +JETTY_INSTALL_TRACE_FILE="etc/jetty.xml" | |
180 | + | |
181 | + | |
182 | +################################################## | |
183 | +# Try to determine JETTY_HOME if not set | |
184 | +################################################## | |
185 | +if [ -z "$JETTY_HOME" ] | |
186 | +then | |
187 | + JETTY_SH=$0 | |
188 | + case "$JETTY_SH" in | |
189 | + /*) ;; | |
190 | + ./*) ;; | |
191 | + *) JETTY_SH=./$JETTY_SH ;; | |
192 | + esac | |
193 | + JETTY_HOME=${JETTY_SH%/*/*} | |
194 | + | |
195 | + if [ ! -f "${JETTY_SH%/*/*}/$JETTY_INSTALL_TRACE_FILE" ] | |
196 | + then | |
197 | + JETTY_HOME= | |
198 | + fi | |
199 | +fi | |
200 | + | |
201 | + | |
202 | +################################################## | |
203 | +# if no JETTY_HOME, search likely locations. | |
204 | +################################################## | |
205 | +if [ -z "$JETTY_HOME" ] ; then | |
206 | + STANDARD_LOCATIONS=( | |
207 | + "/usr/share" | |
208 | + "/usr/share/java" | |
209 | + "${HOME}" | |
210 | + "${HOME}/src" | |
211 | + "${HOME}/opt" | |
212 | + "/opt" | |
213 | + "/java" | |
214 | + "/usr/local" | |
215 | + "/usr/local/share" | |
216 | + "/usr/local/share/java" | |
217 | + "/home" | |
218 | + ) | |
219 | + JETTY_DIR_NAMES=( | |
220 | + "jetty-7" | |
221 | + "jetty7" | |
222 | + "jetty-7.*" | |
223 | + "jetty" | |
224 | + "Jetty-7" | |
225 | + "Jetty7" | |
226 | + "Jetty-7.*" | |
227 | + "Jetty" | |
228 | + ) | |
229 | + | |
230 | + for L in "${STANDARD_LOCATIONS[@]}" | |
231 | + do | |
232 | + for N in "${JETTY_DIR_NAMES[@]}" | |
233 | + do | |
234 | + POSSIBLE_JETTY_HOME=("$L/"$N) | |
235 | + if [ ! -d "$POSSIBLE_JETTY_HOME" ] | |
236 | + then | |
237 | + # Not a directory. skip. | |
238 | + unset POSSIBLE_JETTY_HOME | |
239 | + elif [ ! -f "$POSSIBLE_JETTY_HOME/$JETTY_INSTALL_TRACE_FILE" ] | |
240 | + then | |
241 | + # Trace file not found. skip. | |
242 | + unset POSSIBLE_JETTY_HOME | |
243 | + else | |
244 | + # Good hit, Use it | |
245 | + JETTY_HOME=$POSSIBLE_JETTY_HOME | |
246 | + # Break out of JETTY_DIR_NAMES loop | |
247 | + break | |
248 | + fi | |
249 | + done | |
250 | + if [ -n "$POSSIBLE_JETTY_HOME" ] | |
251 | + then | |
252 | + # We have found our JETTY_HOME | |
253 | + # Break out of STANDARD_LOCATIONS loop | |
254 | + break | |
255 | + fi | |
256 | + done | |
257 | +fi | |
258 | + | |
259 | + | |
260 | +################################################## | |
261 | +# No JETTY_HOME yet? We're out of luck! | |
262 | +################################################## | |
263 | +if [ -z "$JETTY_HOME" ]; then | |
264 | + echo "** ERROR: JETTY_HOME not set, you need to set it or install in a standard location" | |
265 | + exit 1 | |
266 | +fi | |
267 | + | |
268 | +cd "$JETTY_HOME" | |
269 | +JETTY_HOME=$PWD | |
270 | + | |
271 | + | |
272 | +##################################################### | |
273 | +# Check that jetty is where we think it is | |
274 | +##################################################### | |
275 | +if [ ! -r "$JETTY_HOME/$JETTY_INSTALL_TRACE_FILE" ] | |
276 | +then | |
277 | + echo "** ERROR: Oops! Jetty doesn't appear to be installed in $JETTY_HOME" | |
278 | + echo "** ERROR: $JETTY_HOME/$JETTY_INSTALL_TRACE_FILE is not readable!" | |
279 | + exit 1 | |
280 | +fi | |
281 | + | |
282 | +################################################## | |
283 | +# Try to find this script's configuration file, | |
284 | +# but only if no configurations were given on the | |
285 | +# command line. | |
286 | +################################################## | |
287 | +if [ -z "$JETTY_CONF" ] | |
288 | +then | |
289 | + if [ -f $ETC/jetty.conf ] | |
290 | + then | |
291 | + JETTY_CONF=$ETC/jetty.conf | |
292 | + elif [ -f "$JETTY_HOME/etc/jetty.conf" ] | |
293 | + then | |
294 | + JETTY_CONF=$JETTY_HOME/etc/jetty.conf | |
295 | + fi | |
296 | +fi | |
297 | + | |
298 | +################################################## | |
299 | +# Get the list of config.xml files from jetty.conf | |
300 | +################################################## | |
301 | +if [ -z "$CONFIGS" ] && [ -f "$JETTY_CONF" ] && [ -r "$JETTY_CONF" ] | |
302 | +then | |
303 | + while read -r CONF | |
304 | + do | |
305 | + if expr "$CONF" : '#' >/dev/null ; then | |
306 | + continue | |
307 | + fi | |
308 | + | |
309 | + if [ -d "$CONF" ] | |
310 | + then | |
311 | + # assume it's a directory with configure.xml files | |
312 | + # for example: /etc/jetty.d/ | |
313 | + # sort the files before adding them to the list of CONFIGS | |
314 | + for XMLFILE in "$CONF/"*.xml | |
315 | + do | |
316 | + if [ -r "$XMLFILE" ] && [ -f "$XMLFILE" ] | |
317 | + then | |
318 | + CONFIGS+=("$XMLFILE") | |
319 | + else | |
320 | + echo "** WARNING: Cannot read '$XMLFILE' specified in '$JETTY_CONF'" | |
321 | + fi | |
322 | + done | |
323 | + else | |
324 | + # assume it's a command line parameter (let start.jar deal with its validity) | |
325 | + CONFIGS+=("$CONF") | |
326 | + fi | |
327 | + done < "$JETTY_CONF" | |
328 | +fi | |
329 | + | |
330 | +##################################################### | |
331 | +# Find a location for the pid file | |
332 | +##################################################### | |
333 | +if [ -z "$JETTY_RUN" ] | |
334 | +then | |
335 | + JETTY_RUN=$(findDirectory -w /var/run /usr/var/run $JETTY_HOME /tmp) | |
336 | +fi | |
337 | + | |
338 | +##################################################### | |
339 | +# Find a pid and state file | |
340 | +##################################################### | |
341 | +if [ -z "$JETTY_PID" ] | |
342 | +then | |
343 | + JETTY_PID="$JETTY_RUN/jetty.pid" | |
344 | +fi | |
345 | + | |
346 | +if [ -z "$JETTY_STATE" ] | |
347 | +then | |
348 | + JETTY_STATE=$JETTY_HOME/jetty.state | |
349 | +fi | |
350 | +JAVA_OPTIONS+=("-Djetty.state=$JETTY_STATE") | |
351 | +rm -f $JETTY_STATE | |
352 | + | |
353 | +################################################## | |
354 | +# Setup JAVA if unset | |
355 | +################################################## | |
356 | +if [ -z "$JAVA" ] | |
357 | +then | |
358 | + JAVA=$(which java) | |
359 | +fi | |
360 | + | |
361 | +if [ -z "$JAVA" ] | |
362 | +then | |
363 | + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." 2>&2 | |
364 | + exit 1 | |
365 | +fi | |
366 | + | |
367 | +##################################################### | |
368 | +# See if JETTY_PORT is defined | |
369 | +##################################################### | |
370 | +if [ "$JETTY_PORT" ] | |
371 | +then | |
372 | + JAVA_OPTIONS+=("-Djetty.port=$JETTY_PORT") | |
373 | +fi | |
374 | + | |
375 | +##################################################### | |
376 | +# See if JETTY_LOGS is defined | |
377 | +##################################################### | |
378 | +if [ "$JETTY_LOGS" ] | |
379 | +then | |
380 | + JAVA_OPTIONS+=("-Djetty.logs=$JETTY_LOGS") | |
381 | +fi | |
382 | + | |
383 | +##################################################### | |
384 | +# Are we running on Windows? Could be, with Cygwin/NT. | |
385 | +##################################################### | |
386 | +case "`uname`" in | |
387 | +CYGWIN*) PATH_SEPARATOR=";";; | |
388 | +*) PATH_SEPARATOR=":";; | |
389 | +esac | |
390 | + | |
391 | + | |
392 | +##################################################### | |
393 | +# Add jetty properties to Java VM options. | |
394 | +##################################################### | |
395 | +JAVA_OPTIONS+=("-Djetty.home=$JETTY_HOME" "-Djava.io.tmpdir=$TMPDIR") | |
396 | + | |
397 | +[ -f "$JETTY_HOME/etc/start.config" ] && JAVA_OPTIONS=("-DSTART=$JETTY_HOME/etc/start.config" "${JAVA_OPTIONS[@]}") | |
398 | + | |
399 | +##################################################### | |
400 | +# This is how the Jetty server will be started | |
401 | +##################################################### | |
402 | + | |
403 | +JETTY_START=$JETTY_HOME/start.jar | |
404 | +[ ! -f "$JETTY_START" ] && JETTY_START=$JETTY_HOME/lib/start.jar | |
405 | + | |
406 | +START_INI=$(dirname $JETTY_START)/start.ini | |
407 | +[ -r "$START_INI" ] || START_INI="" | |
408 | + | |
409 | +RUN_ARGS=(${JAVA_OPTIONS[@]} -jar "$JETTY_START" $JETTY_ARGS "${CONFIGS[@]}") | |
410 | +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) | |
411 | + | |
412 | +##################################################### | |
413 | +# Comment these out after you're happy with what | |
414 | +# the script is doing. | |
415 | +##################################################### | |
416 | +if (( DEBUG )) | |
417 | +then | |
418 | + echo "JETTY_HOME = $JETTY_HOME" | |
419 | + echo "JETTY_CONF = $JETTY_CONF" | |
420 | + echo "JETTY_RUN = $JETTY_RUN" | |
421 | + echo "JETTY_PID = $JETTY_PID" | |
422 | + echo "JETTY_ARGS = $JETTY_ARGS" | |
423 | + echo "CONFIGS = ${CONFIGS[*]}" | |
424 | + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" | |
425 | + echo "JAVA = $JAVA" | |
426 | + echo "RUN_CMD = ${RUN_CMD}" | |
427 | +fi | |
428 | + | |
429 | +################################################## | |
430 | +# Do the action | |
431 | +################################################## | |
432 | +case "$ACTION" in | |
433 | + start) | |
434 | + echo -n "Starting Jetty: " | |
435 | + | |
436 | + if (( NO_START )); then | |
437 | + echo "Not starting jetty - NO_START=1"; | |
438 | + exit | |
439 | + fi | |
440 | + | |
441 | + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 | |
442 | + then | |
443 | + unset CH_USER | |
444 | + if [ -n "$JETTY_USER" ] | |
445 | + then | |
446 | + CH_USER="-c$JETTY_USER" | |
447 | + fi | |
448 | + | |
449 | + start-stop-daemon -S -p"$JETTY_PID" $CH_USER -d"$JETTY_HOME" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" --daemon | |
450 | + | |
451 | + else | |
452 | + | |
453 | + if [ -f "$JETTY_PID" ] | |
454 | + then | |
455 | + if running $JETTY_PID | |
456 | + then | |
457 | + echo "Already Running!" | |
458 | + exit 1 | |
459 | + else | |
460 | + # dead pid file - remove | |
461 | + rm -f "$JETTY_PID" | |
462 | + fi | |
463 | + fi | |
464 | + | |
465 | + if [ "$JETTY_USER" ] | |
466 | + then | |
467 | + touch "$JETTY_PID" | |
468 | + chown "$JETTY_USER" "$JETTY_PID" | |
469 | + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. | |
470 | + su - "$JETTY_USER" -c " | |
471 | + exec ${RUN_CMD[*]} --daemon & | |
472 | + disown \$! | |
473 | + echo \$! > '$JETTY_PID'" | |
474 | + else | |
475 | + "${RUN_CMD[@]}" & | |
476 | + disown $! | |
477 | + echo $! > "$JETTY_PID" | |
478 | + fi | |
479 | + | |
480 | + fi | |
481 | + | |
482 | + if expr "${CONFIGS[*]}" : '.*etc/jetty-started.xml.*' >/dev/null | |
483 | + then | |
484 | + if started "$JETTY_STATE" "$JETTY_PID" | |
485 | + then | |
486 | + echo "OK `date`" | |
487 | + else | |
488 | + echo "FAILED `date`" | |
489 | + fi | |
490 | + else | |
491 | + echo "ok `date`" | |
492 | + fi | |
493 | + | |
494 | + ;; | |
495 | + | |
496 | + stop) | |
497 | + echo -n "Stopping Jetty: " | |
498 | + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then | |
499 | + start-stop-daemon -K -p"$JETTY_PID" -d"$JETTY_HOME" -a "$JAVA" -s HUP | |
500 | + | |
501 | + TIMEOUT=30 | |
502 | + while running "$JETTY_PID"; do | |
503 | + if (( TIMEOUT-- == 0 )); then | |
504 | + start-stop-daemon -K -p"$JETTY_PID" -d"$JETTY_HOME" -a "$JAVA" -s KILL | |
505 | + fi | |
506 | + | |
507 | + sleep 1 | |
508 | + done | |
509 | + | |
510 | + rm -f "$JETTY_PID" | |
511 | + echo OK | |
512 | + else | |
513 | + PID=$(cat "$JETTY_PID" 2>/dev/null) | |
514 | + kill "$PID" 2>/dev/null | |
515 | + | |
516 | + TIMEOUT=30 | |
517 | + while running $JETTY_PID; do | |
518 | + if (( TIMEOUT-- == 0 )); then | |
519 | + kill -KILL "$PID" 2>/dev/null | |
520 | + fi | |
521 | + | |
522 | + sleep 1 | |
523 | + done | |
524 | + | |
525 | + rm -f "$JETTY_PID" | |
526 | + echo OK | |
527 | + fi | |
528 | + | |
529 | + ;; | |
530 | + | |
531 | + restart) | |
532 | + JETTY_SH=$0 | |
533 | + if [ ! -f $JETTY_SH ]; then | |
534 | + if [ ! -f $JETTY_HOME/bin/jetty.sh ]; then | |
535 | + echo "$JETTY_HOME/bin/jetty.sh does not exist." | |
536 | + exit 1 | |
537 | + fi | |
538 | + JETTY_SH=$JETTY_HOME/bin/jetty.sh | |
539 | + fi | |
540 | + | |
541 | + "$JETTY_SH" stop "$@" | |
542 | + "$JETTY_SH" start "$@" | |
543 | + | |
544 | + ;; | |
545 | + | |
546 | + supervise) | |
547 | + # | |
548 | + # Under control of daemontools supervise monitor which | |
549 | + # handles restarts and shutdowns via the svc program. | |
550 | + # | |
551 | + exec "${RUN_CMD[@]}" | |
552 | + | |
553 | + ;; | |
554 | + | |
555 | + run|demo) | |
556 | + echo "Running Jetty: " | |
557 | + | |
558 | + if [ -f "$JETTY_PID" ] | |
559 | + then | |
560 | + if running "$JETTY_PID" | |
561 | + then | |
562 | + echo "Already Running!" | |
563 | + exit 1 | |
564 | + else | |
565 | + # dead pid file - remove | |
566 | + rm -f "$JETTY_PID" | |
567 | + fi | |
568 | + fi | |
569 | + | |
570 | + exec "${RUN_CMD[@]}" | |
571 | + | |
572 | + ;; | |
573 | + | |
574 | + check|status) | |
575 | + echo "Checking arguments to Jetty: " | |
576 | + echo "JETTY_HOME = $JETTY_HOME" | |
577 | + echo "JETTY_CONF = $JETTY_CONF" | |
578 | + echo "JETTY_RUN = $JETTY_RUN" | |
579 | + echo "JETTY_PID = $JETTY_PID" | |
580 | + echo "JETTY_PORT = $JETTY_PORT" | |
581 | + echo "JETTY_LOGS = $JETTY_LOGS" | |
582 | + echo "START_INI = $START_INI" | |
583 | + echo "CONFIGS = ${CONFIGS[*]}" | |
584 | + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" | |
585 | + echo "JAVA = $JAVA" | |
586 | + echo "CLASSPATH = $CLASSPATH" | |
587 | + echo "RUN_CMD = ${RUN_CMD[*]}" | |
588 | + echo | |
589 | + | |
590 | + if [ -f "$JETTY_PID" ] | |
591 | + then | |
592 | + echo "Jetty running pid=$(< "$JETTY_PID")" | |
593 | + exit 0 | |
594 | + fi | |
595 | + exit 1 | |
596 | + | |
597 | + ;; | |
598 | + | |
599 | + *) | |
600 | + usage | |
601 | + | |
602 | + ;; | |
603 | +esac | |
604 | + | |
605 | +exit 0 | |
0 | 606 | \ No newline at end of file | ... | ... |