Skip to main content

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