Classic SciELO Website with Docker
HOW TO CONFIGURE LINUX SERVER WITH DOCKER
Installing docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Creating the file docker-compose.yml
version: '2'
services:
metodologia:
image: infrascielo/classic-site:latest
environment:
INSTANCE_NAME: scielo_br
USER_SUPERVISOR: root
PASS_SUPERVISOR: toor
SITE_NAME: www.scielo.br
USER_FTP: usuario ftp
PASSWD_FTP: clave del usuario ftp
USER_PASS: scielo123
GIT_BRANCH_NAME: scielo_scl
volumes:
- /var/www/scielo:/var/www/scielo
- /var/www/apache:/var/www/apache
- /etc/localtime:/etc/localtime
ports:
- "80:80"
- "2222:22"
restart: always
Necessaries changes:
Please change the variables bellow:
INSTANCE_NAME: This field must be change to the website's domain with undescore. For instance: scielo.org.ve muste be scielo_org_ve
PASS_SUPERVISOR: You have to choose a new password. The default is toor. Never leave the default value.
SITE_NAME: This field corresponding to your website.
USER_FTP: This field must be filled up with the user created by SciELO Brasil. If you don't have, you have to request to SciELO Brasil.
PASSWD_FTP: This field must be filled up with the password from ftp user create by SciELO Brasil.
USER_PASS: This field is the password from the user scielo used to do ssh
GIT_BRANCH_NAME: Each SciELO Collection has its own branch. If you don't have, please use the default scielo_scl or request your. If you don't know yours, please visit GitHub SciELO
Required variables: INSTANCE_NAME, SITE_NAME and GIT_BRANCH_NAME
Volumes changes:
The path /var/www/scielo is the source of your installation.
- /var/www/scielo:/var/www/scielo
The path /var/www/apache is where will be stored the Apache Logs
- /var/www/apache:/var/www/apache
The path /etc/localtime is the file to keep the clock equal from the server.
- /etc/localtime:/etc/localtime
How to start the container
docker-compose up -d
how to stop the container
docker-compose down
How to list all containers running
docker-compose ps
How to upgrade databases, Images and PDFs from SciELO Methodology
En el Servidor Windows ejecute el programa CMD entre en la carpeta C:\var\www\scielo\proc digite:
GeraPadrao.bat
Espere hasta que termine. Para analizar la generación de las bases hay una carpeta en C:\var\www\scielo\proc\log Busque el archivo log GeraPadrao.log
Obs.: La generación de las bases está condicionada a la existencia de las bases en la carpeta C:\var\www\scielo\serial y un fichero C:\var\www\scielo\serial\scilista.lst. El fichero scilista.lst sigue el padrón: Acrónimo volumen y número
Ejemplo:
maskay v6n1
sophia n22
Una vez que se ve en el navegador el resultado del procesamiento ya es posible enviar las bases, imágenes y pdfs para el servidor de desarrollo. Para enviar los ficheros necesarios usamos el script C:\PAPERBOY\paperboy.bat. El resultado del envío es salvo en C:\PAPERBOY\logs\paperboy-scielo.log
Una vez que enviamos bases, imágenes y pdfs para el servidor de desarrollo tenemos que procesar las bases en el formato linux.
Sigue los pasos:
- Acceda al servidor de desarrollo;
- Ejecute docker ps para verificar cuales contenedor está en ejecución;
- Identificando el CONTAINER ID del contenedor metodología, accedemos a el con el comando: docker exec -ti <CONTAINER ID> bash. Cambie CONTAINER ID por la secuencia numérica
- Una vez que estamos dentro del bash del contenedor entre en la carpeta
$ cd /var/www/scielo/proc/
Ejecute:
$./GeraPadrao.bat
Cuando finalize verifique se el sitio http://your.domain.scielo este actualizado
Si sí vamos enviar las bases procesadas desde este contenedor.
Ejecute el comando exit para salir desde el contenedor
$exit
Es importante que la instrucción ahora sea hecha usando el usuário scielo, pues no funciona con el usuario root
#su - scielo
Scripts para actualización
atualiza-bases-scielo.sh
#!/bin/bash
# Script: function.sh - Criação das funções que será utilizado pelo script update_bases.sh
# para atualizar os arquivos da instância SciELO processada.
# Mantenedor: Rondineli Saad e Fábio Batalha
# Criado em: 08/05/2019
# Versão: 11
# Funcao para atualizar bases:-->
# |->$1 Coleção
# |->$2 Diretório em /rancher/scielo_ve_data/
#
DIR_INSTANCIA_ORIG="/var/www/scielo"
DIR_INSTANCIA_DEST="/var/www/scielo"
DIR_BASES="artigo areasgeo issue title related cited iah scimago img lattes medline newissue translation"
DATA_ATUAL=`date +"%d-%m-%Y-%H_%m_%S"`
IP_SERVER="192.168.2.19"
update(){
echo "Update ScieLO Data"
if [ -e update_bases_scielo-novo.log ]
then
mv update_bases_scielo-novo.log update_bases_scielo-novo-${DATA_ATUAL}.log
fi
for j in $DIR_BASES
do
echo "RSYNC - BASES"
echo "$j"
ssh ${IP_SERVER} mkdir ${DIR_INSTANCIA_DEST}/bases-new/${j}
rsync -Cravp -e 'ssh' ${DIR_INSTANCIA_OIRG}/bases/${j}/ ${IP_SERVER}:${DIR_INSTANCIA_DEST}/bases-new/${j}/ 2>> update_bases_scielo_br-novo.log
done
echo "Atualizando os pdfs"
rsync -Cravp -e 'ssh' ${DIR_INSTANCIA_ORIG}/bases/pdf/ ${IP_SERVER}:${DIR_INSTANCIA_DEST}/bases/pdf/ 2>> update_bases_scielo-novo.log
echo "Copiando Páginas Secundárias"
rsync -Cravp -e 'ssh' ${DIR_INSTANCIA_ORIG}/htdocs/img/revistas/ ${IP_SERVER}:${DIR_INSTANCIA_DEST}/htdocs/img/revistas/ 2>> update_bases_scielo-novo.log
rsync -Cravp -e 'ssh' ${DIR_INSTANCIA_ORIG}/htdocs/revistas/ ${IP_SERVER}:${DIR_INSTANCIA_DEST}/htdocs/revistas/ 2>> update_bases_scielo_br.log
#echo "--->Execução do Script de Distribuição da base e Movimentação das bases"
ssh ${IP_SERVER} sh /var/www/educa_fcc_org_br/scripts/data-scielo.sh update 2>> update_bases_scielo-novo.log
echo "-----> FIM: Termino do envio da Bases, PDF, Páginas Secundária e execução do updateScielo-data-MOVE.sh" 2>> update_bases_scielo-novo.log
}
rollback(){
ssh ${IP_SERVER} sh /var/www/scielo/scripts/data-scielo.sh rollback 2>> update_bases_scielo-novo.log
}
case "$1" in
update)
update
;;
rollback)
rollback
;;
*)
echo "Option not valid: update, rollback"
;;
esac
data-scielo.sh
#!/bin/sh
update(){
rm -rf /var/www/scielo/bases-old/*
cd /var/www/scielo/bases
mv areasgeo artigo cited iah img issue lattes medline newissue related title translation scimago /var/www/scielo/bases-old/
mv /var/www/scielo/bases-new/* /var/www/scielo/bases/
echo "---->FIM: SciELO Atualizado com êxito\!"
}
rollback(){
rm -rf /var/www/scielo/bases-failed/*
cd /var/www/scielo/bases
mv areasgeo artigo cited iah img issue lattes medline newissue related title translation scimago /var/www/scielo/bases-failed
cd /var/www/scielo/bases-old/
mv areasgeo artigo cited iah img issue lattes medline newissue related title translation scimago /var/www/scielo/bases
}
case "$1" in
update)
update
;;
rollback)
rollback
;;
*)
echo "Option not valid: update, rollback"
;;
esac