Dockerfile
6.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
###########################################################
# Dockerfile de construção do container Solr
# utilizado pelo SEI e pelo SIP
#
# Baseado no CentOS 6.X
############################################################
# Definição da imagem de base para o CentOS 6.X
FROM centos:centos6
# Autor e mantenedor do container
MAINTAINER PEN - Processo Eletrônico Nacional
################## INICIO DA INSTALACAO ######################
# Instalação do Apache Solr seguindo as recomendações descritas na documentação do SEI
# Ref: https://processoeletronico.gov.br/projects/sei/wiki
# Instalação do pacote Java JDK e utilitários utilizados no provisionamento
RUN yum update -y && \
yum install -y java-1.7.0-openjdk wget tar curl which && \
yum -y clean all
# Criação de usuário de execução do serviço
RUN useradd solr
# Obtenção do pacote de instalação do Solr 4.0
ADD apache-solr-4.0.0.tgz /opt/
# Instalação do Apache Solr
RUN mv /opt/apache-solr-4.0.0 /opt/solr && chown -R solr:solr /opt/solr
# Configuração dos parâmetros default
RUN echo "JAVA_OPTIONS='-Dsolr.solr.home=/opt/solr/example/solr $JAVA_OPTIONS'" | tee -a /etc/default/jetty && \
echo "JETTY_HOME=/opt/solr/example" | tee -a /etc/default/jetty && \
echo "JETTY_USER=solr" | tee -a /etc/default/jetty
# Configuração do script de inicialização automática
RUN wget -q -O /etc/init.d/solr https://raw.githubusercontent.com/eclipse/jetty.project/jetty-7/jetty-distribution/src/main/resources/bin/jetty.sh && \
chmod +x /etc/init.d/solr
# Criação dos diretório de armazenamento de índices
RUN mkdir /var/opt/sei && \
mkdir /var/opt/sei/sei-protocolos && ln -s /var/opt/sei/sei-protocolos /opt/solr/example/solr/ && \
mkdir /var/opt/sei/sei-bases-conhecimento && ln -s /var/opt/sei/sei-bases-conhecimento /opt/solr/example/solr/ && \
mkdir /var/opt/sei/sei-publicacoes && ln -s /var/opt/sei/sei-publicacoes /opt/solr/example/solr/
# Copia do conjunto de configurações padrão do Solr
RUN cp -R /opt/solr/example/solr/collection1/conf /var/opt/sei/sei-protocolos/ && \
cp -R /opt/solr/example/solr/collection1/conf /var/opt/sei/sei-bases-conhecimento/ && \
cp -R /opt/solr/example/solr/collection1/conf /var/opt/sei/sei-publicacoes/
# Removeção dos arquivos schema.xml e solrconfig.xml das cópias
RUN rm /var/opt/sei/sei-protocolos/conf/schema.xml && \
rm /var/opt/sei/sei-protocolos/conf/solrconfig.xml && \
rm /var/opt/sei/sei-bases-conhecimento/conf/schema.xml && \
rm /var/opt/sei/sei-bases-conhecimento/conf/solrconfig.xml && \
rm /var/opt/sei/sei-publicacoes/conf/schema.xml && \
rm /var/opt/sei/sei-publicacoes/conf/solrconfig.xml
# Configuração dos índices do SEI
ADD index/sei-protocolos-schema.xml /var/opt/sei/sei-protocolos/conf/sei-protocolos-schema.xml
ADD index/sei-bases-conhecimento-schema.xml /var/opt/sei/sei-bases-conhecimento/conf/sei-bases-conhecimento-schema.xml
ADD index/sei-publicacoes-schema.xml /var/opt/sei/sei-publicacoes/conf/sei-publicacoes-schema.xml
ADD index/sei-protocolos-config.xml /var/opt/sei/sei-protocolos/conf/sei-protocolos-config.xml
ADD index/sei-bases-conhecimento-config.xml /var/opt/sei/sei-bases-conhecimento/conf/sei-bases-conhecimento-config.xml
ADD index/sei-publicacoes-config.xml /var/opt/sei/sei-publicacoes/conf/sei-publicacoes-config.xml
# Criação de diretório de conteúdo para os índices
RUN mkdir /var/opt/sei/sei-protocolos/conteudo && \
mkdir /var/opt/sei/sei-bases-conhecimento/conteudo && \
mkdir /var/opt/sei/sei-publicacoes/conteudo
# Configuração dos links a instalação do Solr e o índice Protocolo
RUN ln -s /opt/solr/contrib/ /var/opt/sei/sei-protocolos/contrib && \
ln -s /opt/solr/dist/ /var/opt/sei/sei-protocolos/dist && \
ln -s /opt/solr/example/lib/ /var/opt/sei/sei-protocolos/lib
# Configuração dos links a instalação do Solr e o índice Base de Conhecimento
RUN ln -s /opt/solr/contrib/ /var/opt/sei/sei-bases-conhecimento/contrib && \
ln -s /opt/solr/dist/ /var/opt/sei/sei-bases-conhecimento/dist && \
ln -s /opt/solr/example/lib/ /var/opt/sei/sei-bases-conhecimento/lib
# Configuração dos links a instalação do Solr e o índice Publicações
RUN ln -s /opt/solr/contrib/ /var/opt/sei/sei-publicacoes/contrib && \
ln -s /opt/solr/dist/ /var/opt/sei/sei-publicacoes/dist && \
ln -s /opt/solr/example/lib/ /var/opt/sei/sei-publicacoes/lib
# Configuração de log e permissões de pastas
RUN mkdir /var/log/solr
RUN chown solr:solr -R /opt/solr /var/opt/sei /var/log/solr
# Construção dos índices de protocolos do SEI
RUN /etc/init.d/solr start && sleep 20 && \
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'
# Construção dos índices da base de conhecimento do SEI
RUN /etc/init.d/solr start && sleep 20 && \
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'
# Construção dos índices de publicações do SEI
RUN /etc/init.d/solr start && sleep 20 && \
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'
# Construção dos índices de publicações do SEI
RUN /etc/init.d/solr start && sleep 20 && \
curl 'http://localhost:8983/solr/admin/cores?action=RELOAD&core=sei-protocolos' && \
curl 'http://localhost:8983/solr/admin/cores?action=RELOAD&core=sei-bases-conhecimento' && \
curl 'http://localhost:8983/solr/admin/cores?action=RELOAD&core=sei-publicacoes'
##################### FIM DA INSTALACAO #####################
# Definição do terminal a ser utilizado
ENV TERM xterm
WORKDIR /opt/solr/example
# Exposição da porta de conexão ao Apache
EXPOSE 8983
# Inicialização dos serviços Apache e Memcache
CMD ["java", "-jar", "start.jar"]