Catálogo de Sistemas

Documentação e procedimentos

Ferramentas do usuário

Ferramentas do site


sistema_academico:criacao_de_ambiente_de_desenvolvimento

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Última revisão Ambos lados da revisão seguinte
sistema_academico:criacao_de_ambiente_de_desenvolvimento [22/08/2019 14:51]
Carlitos
sistema_academico:criacao_de_ambiente_de_desenvolvimento [16/06/2021 19:11]
Carlitos
Linha 1: Linha 1:
 ====== Criação de ambiente de desenvolvimento ====== ====== Criação de ambiente de desenvolvimento ======
  
-Para facilitar e padronizar a criação do ambiente de desenvolvimento foi adotado o uso de [[https://​www.docker.com/​get-started|Dockers]] para construção do servidor da aplicação (HTTP/​Apache e PHP) e do banco de dados (Postgres). E para facilitar a construção das dockers foi utilizado o [[https://​docs.docker.com/​compose/​|docker-compose]]. As dockers funcionam em diferentes sistemas operacionais,​ porém recomendamos o uso de Ubuntu ou Debian atualizados. ​+Para facilitar e padronizar a criação do ambiente de desenvolvimento foi adotado o uso de [[https://​www.docker.com/​get-started|Dockers]] para construção do servidor da aplicação (HTTP/​Apache e PHP) e do banco de dados (Postgres). E para facilitar a construção das dockers foi utilizado o [[https://​docs.docker.com/​compose/​|docker-compose]]. As dockers funcionam em diferentes sistemas operacionais,​ porém recomendamos o uso de Ubuntu ou Debian atualizados ​na máquina hospedeira
  
-Serão necessárias duas dockers. São elas: +Para isso basta seguir ​README ​do projeto ​de montagem das Dockers: [[https://​bitbucket.org/​ifms/​docker-sistema-academico]].
- +
-===== 1. Docker Postgres 9.5 ===== +
- +
-Para construir essa docker crie uma pasta chamada "​postgres"​. Dentro dessa pasta crie um arquivo chamado "​docker-compose.yml"​ com conteúdo:​ +
-<​code>​ +
-version: "​2"​ +
-services: +
-  db: +
-    image: postgres:​9.5 +
-    container_name:​ "​postgres"​ +
-    environment:​ +
-      - POSTGRES_DB=dbsigaedu +
-      - POSTGRES_USER=postgres +
-      - POSTGRES_PASSWORD=1234 +
-    volumes: +
-      - "​.:/​var/​lib/​postgresql/​backup"​ +
-    ports: +
-      - 5003:5432 +
- +
-networks: +
-  static-network:​ +
-    ipam: +
-      config: +
-        - subnet: 173.20.0.1/​32 +
-</​code>​ +
- +
-Copie o arquivo de DUMP do banco (padrão compactado com Inserts explícitos - deve ser solicitado junto a equipe ​de desenvolvimento) para dentro da mesma pasta "​postgres",​ por exemplodump.backup.  +
- +
-E então após a salvar o arquivo vá até o terminal e entre com os comandos abaixo: +
- +
-<​code>​ +
-#navegue até a pasta "​postgres"​ +
-cd ~/​postgres +
- +
-# construindo a docker... pode demorar um pouco dependendo da sua conexão com a Internet +
-docker-compose build +
- +
-# subindo a docker e colocando-a em background +
-docker-compose up -d +
- +
-# quando tiver UP, vamos restaurar o DUMP do banco nela... isso pode demorar um pouco, algumas tabelas são grandes +
-docker exec -it postgres sh -c "​pg_restore -U postgres -d dbsigaedu < /​var/​lib/​postgresql/​backup/​dump.backup --verbose"​ +
- +
-# Alterando a senha de todos os usuários para 1234 +
-docker exec -it postgres sh -c "psql -U postgres -d dbsigaedu -c \"​UPDATE usuario SET senha = md5('​1234'​)\""​ +
-</​code>​ +
- +
-Pronto! Caso queira testar essa conexão pode utilizar o pgAdmin e acessar o banco de dados "​dbsigaedu"​ pela porta 5003 através do IP 173.20.0.1, conforme definido no docker-compose. +
- +
-===== 2. Docker Apache2/​PHP5.6 ===== +
- +
-Para construir essa docker crie uma pasta chamada "​apache_php"​. Dentro dessa pasta crie um arquivo chamado "​docker-compose.yml"​ com o conteúdo:​ +
- +
-<​code>​ +
-version: '​2'​ +
- +
-services: +
-  servidor: +
-    build: . +
-    container_name:​ apache_php +
-    ports: +
-      - "​8092:​80"​ +
-    volumes: +
-      - /​tmp/​sigaeduext_git:/​var/​www/​html/​cakephp/​sigaeduext_git +
-</​code>​ +
- +
-Crie um outro arquivo chamado "​Dockerfile"​ com o conteúdo:​ +
- +
-<​code>​ +
-FROM ubuntu:​xenial +
-MAINTAINER Stefan van Gastel <​stefanvangastel@gmail.com>​ e alterado por Carlitos Oliveira (IFMS) +
- +
-# Install packages and PHP 5.6 +
-ENV DEBIAN_FRONTEND noninteractive +
-ENV LANG C.UTF-8 +
- +
-RUN apt-get update && \ +
-    apt-get install -y software-properties-common && \ +
-    add-apt-repository ppa:​ondrej/​php && \ +
-    apt-get update && \ +
-    apt-get install -y \ +
-    wget \ +
-    # supervisor \ +
-    php5.6 \ +
-    #php5.6-cgi \ +
-    php5.6-cli \ +
-    php5.6-common \ +
-    #php5.6-fpm \ +
-    #​php5.6-mysql \ +
-    php5.6-pgsql \ +
-    php5.6-mbstring \ +
-    php5.6-curl \ +
-    php5.6-dev \ +
-    php5.6-gd \ +
-    php5.6-xml \ +
-    php5.6-mcrypt \ +
-    php5.6-xmlrpc \ +
-    php5.6-zip \ +
-    #​libxrender1 ​ \ +
-    #libxext6 \ +
-    #​libfontconfig1 \ +
-    #​wkhtmltopdf \ +
-    #xvfb \ +
-    git \ +
-    #curl \ +
-    apache2 \ +
-    libapache2-mod-php5.6 && \ +
-    #openssl && \ +
-    apt-get clean && \ +
-    echo "​ServerName localhost"​ >> /​etc/​apache2/​apache2.conf +
- +
-# Add apache config to enable .htaccess and do some stuff you want +
-COPY apache_default /​etc/​apache2/​sites-available/​000-default.conf +
- +
-# Enable mod rewrite and listen to localhost +
-RUN a2enmod rewrite && \ +
- echo "​ServerName localhost"​ >> /​etc/​apache2/​apache2.conf +
- +
-################################################################​ +
-# CakePHP 2.1 installation from source # +
-################################################################​ +
- +
-# Clonar Cakephp 2.1.5 +
-RUN mkdir /​var/​www/​html/​cakephp && git clone --branch 2.1.5 --depth 1 https://​github.com/​cakephp/​cakephp.git /​var/​www/​html/​cakephp +
- +
-####################################################​ +
-# Expose port and run Apache webserver ​            # +
-####################################################​ +
- +
-EXPOSE 80 +
-CMD ["/​usr/​sbin/​apache2ctl",​ "​-DFOREGROUND"​] +
-</​code>​ +
- +
-E crie outro arquivo chamado "​apache_default",​ com o conteúdo abaixo: +
- +
-<​code>​ +
-<​VirtualHost *:80> +
-        ServerAdmin webmaster@localhost +
- +
-        DocumentRoot /​var/​www/​html +
-        <​Directory /> +
-                Options FollowSymLinks +
-                AllowOverride None +
-        </​Directory>​ +
-        <​Directory /​var/​www/​html>​ +
-                Options Indexes FollowSymLinks MultiViews +
-                # To make .htaccess work +
-                AllowOverride FileInfo +
-                Order allow,​deny +
-                allow from all +
-        </​Directory>​ +
- +
-        ScriptAlias /cgi-bin/ /​usr/​lib/​cgi-bin/​ +
-        <​Directory "/​usr/​lib/​cgi-bin">​ +
-                AllowOverride None +
-                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +
-                Order allow,​deny +
-                Allow from all +
-        </​Directory>​ +
- +
-        ErrorLog ${APACHE_LOG_DIR}/​error.log +
- +
-        # Possible values include: debug, info, notice, warn, error, crit, +
-        # alert, emerg. +
-        LogLevel debug +
- +
-        CustomLog ${APACHE_LOG_DIR}/​access.log combined +
- +
-+
- # Set HTTPS environment variable if we came in over secure +
- #  channel. +
- SetEnvIf x-forwarded-proto https HTTPS=on +
- +
-</​VirtualHost>​ +
-</​code>​ +
- +
-E então após salvar os arquivos vá até o terminal e entre com os comandos abaixo: +
- +
-<​code>​ +
-#navegue até a pasta "​apache_php"​ +
-cd ~/​apache_php +
- +
-# construindo a docker... pode demorar um pouco dependendo da sua conexão com a Internet +
-docker-compose build +
- +
-# subindo a docker e colocando-a em background +
-docker-compose up -d +
-</​code>​ +
- +
-Pronto! Para testar se o Apache está OK, basta abrir um navegador e acessar o endereço: ​[[http://​localhost:​8092]]. +
- +
-===== Vinculando as dockers e finalizando a configuração ===== +
- +
-Agora temos as duas dockers prontas, uma com o banco e a outra com o servidor da aplicação. Precisamos agora baixar os códigos da aplicação. Observe no arquivo "​~/​apache_php/​docker-compose.yml"​ que o diretório "/​tmp/​sigaeduext_git"​ ficou definido como sendo o diretório dos códigos da aplicação. Portanto para baixar os códigos do repositório para este diretório será necessário criar o arquivo "/​tmp/​install.sh"​ abaixo: +
- +
-<​code>​ +
-#​!/​bin/​bash +
- +
-DIRETORIO=/​tmp/​sigaeduext_git +
-BRANCH=homolog +
-DB_HOST=173.20.0.1 +
-DB_USER=postgres +
-DB_PASS=1234 +
-DB_PORT=5003 +
-DB_NAME=dbsigaedu +
-  +
-read -r -p "1. Deseja apagar tudo do $DIRETORIO (yes/no)? " APAGAR_DIRETORIO +
- +
-if [ $APAGAR_DIRETORIO == "​yes"​ ]; +
-then +
- echo " > Diretorio limpo"​ +
- rm -r $DIRETORIO +
- mkdir $DIRETORIO +
- chmod 775 -R $DIRETORIO +
- +
- echo "2. Baixando os arquivos do projeto do Bitbucket: " +
- git clone -b $BRANCH ​https://​bitbucket.org/​ifms/​sigaeduext.git $DIRETORIO +
- +
- echo "3. Setando pastas padrão..."​ +
- mkdir $DIRETORIO/​tmp +
- mkdir $DIRETORIO/​tmp/​cache +
- mkdir $DIRETORIO/​tmp/​cache/​models +
- mkdir $DIRETORIO/​tmp/​cache/​persistent +
- mkdir $DIRETORIO/​tmp/​cache/​views +
- mkdir $DIRETORIO/​tmp/​logs +
- mkdir $DIRETORIO/​tmp/​sessions +
- mkdir $DIRETORIO/​tmp/​tests +
- +
- echo "4. Criando configurações do banco de dados"​ +
- echo "<?​php +
- class DATABASE_CONFIG { +
-    public \$sigaedu = array( +
-        '​datasource'​ => '​Database/​Postgres',​ +
-         '​persistent'​ => false, +
-         '​host'​ => '​$DB_HOST',​ +
-         '​login'​ => '​$DB_USER',​ +
-         '​password'​ => '​$DB_PASS',​ +
-         '​encoding'​ => '​utf8',​ +
-         '​port'​ => '​$DB_PORT',​ +
-         '​database'​ => '​$DB_NAME'​ +
-     ); +
- }  +
- ?>"​ > $DIRETORIO/​Config/​database.php +
- +
-else +
- echo " > Mantido diretório"​ +
-fi +
- +
-echo "​Concedendo permissões de arquivos..."​ +
-chown -R www-data:​www-data $DIRETORIO +
-chmod 777 -R $DIRETORIO/​tmp  +
-chmod 775 -R $DIRETORIO/​upload +
-chmod 775 -R $DIRETORIO/​Fotos +
-chmod 775 -R $DIRETORIO/​PATs +
-</​code>​ +
- +
-Feito isto, vá até o terminal e execute os comandos abaixo: +
-<​code>​ +
-# dar permissão de execução no arquivo +
-sudo chmod +x /​tmp/​install.sh +
- +
-# executar arquivo... será solicitado o usuário e a senha do Bitbucket +
-sudo sh /​tmp/​install.sh +
-</​code>​ +
- +
-Se tudo estiver OK ao acessar o endereço: [[http://​localhost:​8092/​cakephp/​sigaeduext_git]] você verá a tela de login da aplicação. Para acessar o usuário administrativo basta entrar com usuário: **admin** e senha **1234**.+
sistema_academico/criacao_de_ambiente_de_desenvolvimento.txt · Última modificação: 21/06/2021 16:55 por Carlitos