• Tutorial
  • Tutorial de instalação novoSGA 2.0.3 com Docker

Primeiramente instale o Docker para o seu sistema. Veja as opções disponíveis aqui: https://store.docker.com/search?offering=community&type=edition

Após reiniciar seu computador/servidor, crie um diretório com o nome que desejar em local de sua preferência. Dentro deste diretório copie o conteúdo abaixo em um editor de texto qualquer, edite as variáveis em ENVIRONMENT para valores de sua preferência e altere a variável DATABASE_URL de acordo com o que você modificou. Salve o arquivo como docker-compose.yml:

version: '2'

services:
  novosga:
    image: novosga/novosga:latest
    restart: always
    depends_on:
      - mysqldb
    ports:
      - "80:80"
      - "2020:2020"
    environment:
      APP_ENV: 'prod'
      # database connection
      DATABASE_URL: 'mysql://novosga:MySQL_App_P4ssw0rd!@mysqldb:3306/novosga2?charset=utf8mb4&serverVersion=5.7'
      # default admin user
      NOVOSGA_ADMIN_USERNAME: 'admin'
      NOVOSGA_ADMIN_PASSWORD: '123456'
      NOVOSGA_ADMIN_FIRSTNAME: 'Administrator'
      NOVOSGA_ADMIN_LASTNAME: 'Global'
      # default unity
      NOVOSGA_UNITY_NAME: 'My Unity'
      NOVOSGA_UNITY_CODE: 'U01'
      # default no-priority
      NOVOSGA_NOPRIORITY_NAME: 'Normal'
      NOVOSGA_NOPRIORITY_DESCRIPTION: 'Normal service'
      # default priority
      NOVOSGA_PRIORITY_NAME: 'Priority'
      NOVOSGA_PRIORITY_DESCRIPTION: 'Priority service'
      # default place
      NOVOSGA_PLACE_NAME: 'Box'
      # Set TimeZone and locale
      TZ: 'America/Sao_Paulo'
      LANGUAGE: 'pt_BR'
  mysqldb:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_USER: 'novosga'
      MYSQL_DATABASE: 'novosga2'
      MYSQL_ROOT_PASSWORD: 'MySQL_r00t_P4ssW0rd!'
      MYSQL_PASSWORD: 'MySQL_App_P4ssw0rd!'
      # Set TimeZone
      TZ: 'America/Sao_Paulo'

Feito isso, abra o terminal (no caso do Windows, abra o cmd ou powershell) e acesse o diretório onde salvou o arquivo docker-compose.yml.

Para iniciar os contêineres pela primeira vez, digite o comando docker-compose up -d. As imagens serão baixadas para o seu computador/servidor e os contêineres serão criados e executados.

Com os contêineres executando, você pode acessar o SGA através do endereço http://ip-do-computador/ ou em alguns casos, http://192.168.99.100/. Na primeira inicialização, deverá demorar um pouco para conseguir acessar.

Para parar os contêineres, digite docker-compose stop e para rodá-los novamente, digite docker-compose start.

Para parar os contêineres e removê-los de seu sistema, use o comando docker-compose down.

Caso queira acessar os logs, pode fazê-lo com o comando docker-compose logs -f. Para sair dos logs, pressione CTRL + C.

Maiores detalhes podem ser vistos na página do projeto.

    lamasbr Boa noite, precisa adicionar repositório no Docker?
    Nunca utilizei, e seguindo as instruções, mesmo ele rodando no Windows, não baixa as imagens.

    Client:
    Version: 18.06.1-ce
    API version: 1.38
    Go version: go1.10.3
    Git commit: e68fc7a
    Built: Tue Aug 21 17:21:34 2018
    OS/Arch: windows/amd64
    Experimental: false

    Server:
    Engine:
    Version: 18.06.1-ce
    API version: 1.38 (minimum version 1.12)
    Go version: go1.10.3
    Git commit: e68fc7a
    Built: Tue Aug 21 17:29:02 2018
    OS/Arch: linux/amd64
    Experimental: false

      educs Bom dia!

      No Docker não precisa adicionar repositório. Quando o comando docker-compose up -d é executado, o Docker baixa as imagens necessárias (que estão especificadas no arquivo docker-compose.yml) automaticamente.

      Você pode baixar as imagens manualmente também com os comandos docker pull novosga/novosga:latest e docker pull mysql:5.7.

      Quando você executa o comando docker-compose up -d, o que é retornado na tela?

        lamasbr Boa noite, com o comando "docker-compose up -d", não retorna nada só volta no DOS ou no Powershell para o local onde salvei o arquivo *.yml

          educs Estranho, aqui uso a mesma versão que você, refiz o tutorial seguindo os passos exatamente como descrito e funcionou normalmente. Talvez reinstalar o docker resolva o problema.

          Após executar o comando docker-compose up -d (no mesmo diretório onde está o arquivo docker-compose.yml), se você digitar docker ps -a o que é retornado?

          Se você executar o comando docker-compose version, retorna alguma informação parecida com essa abaixo?
          docker-compose version 1.22.0, build f46880fe
          docker-py version: 3.4.1
          CPython version: 3.6.6
          OpenSSL version: OpenSSL 1.0.2o 27 Mar 2018

          OBS: O arquivo deve ser salvo obrigatoriamente como docker-compose.yml ou docker-compose.yaml. Qualquer coisa diferente disso o comando docker-compose não funciona e dá erro.

            4 meses depois

            Muito obrigado pelo trabalho de compor esse post. Me ajudou muito na instalação do NovoSGA bem como compreender melhor uns conceitos basicos do Docker que não compreendia!!

            2 meses depois

            joguei meu código no site http://yaml-online-parser.appspot.com/

            e ele me retornou o seguinte erro:

            ERROR:
            
            while parsing a block mapping
              in "<unicode string>", line 13, column 7:
                      APP_ENV: 'prod'
                      ^
            expected <block end>, but found '<scalar>'
              in "<unicode string>", line 17, column 32:
                      NOVOSGA_ADMIN_USERNAME: 'admin'

            pórem continuo sem saber o que alterar...

            deixei passar uma ( ' ) pra finalizar o bloco, o comando rodou, no entanto obtive outro erro

            Creating novosga_novosga_1 ... error

            ERROR: for novosga_novosga_1 Cannot start service novosga: b'driver failed programming external connectivity on endpoint novosga_novosga_1 (656dccd99fde2699aeb35650eeca61f35aec2ecefde3bb5252b8372274ea5aa3): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use'

            ERROR: for novosga Cannot start service novosga: b'driver failed programming external connectivity on endpoint novosga_novosga_1 (656dccd99fde2699aeb35650eeca61f35aec2ecefde3bb5252b8372274ea5aa3): Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use'
            ERROR: Encountered errors while bringing up the project.

            preciso de ajuda agora para solucionar esse problema, se for o caso refaço alguma informação no docker-compose.yml

              tinha instalado o apache2 que estava "ouvindo" na porta 80, executei o service apache2 stop e retornei a usar o comando docker-compose up -d e o resultado obitido foi:

              WARNING: The ga variable is not set. Defaulting to a blank string.
              WARNING: The qL variable is not set. Defaulting to a blank string.
              Creating network "novosga_default" with the default driver
              Creating novosga_mysqldb_1 ... done
              Creating novosga_novosga_1 ... done

              mas ao colocar o ip no navegador não abre nada... desculpa o incomodo mas estou precisando fazer o novosga2 rodar aqui no estágio...

              ao rodar o comando docker ps -a, obtenho:

              CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
              6471a2604296 novosga/novosga:latest "docker-php-entrypoi…" 18 minutes ago Up 18 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:2020->2020/tcp novosga_novosga_1
              7b079b2f263f mysql:5.7 "docker-entrypoint.s…" 18 minutes ago Up 18 minutes 3306/tcp, 33060/tcp novosga_mysqldb_1

              ao rodar o docker-compose version, obtenho:
              docker-compose version 1.23.2, build 1110ad01
              docker-py version: 3.6.0
              CPython version: 3.6.7
              OpenSSL version: OpenSSL 1.1.0f 25 May 2017

              aparentemente fiz tudo certo, mas ao colocar o ip, caio na tela do Apache2 Debian Default Page, se alguém puder me dar uma luz, aonde eu devo alterar alguma coisa, agradeço.

              eduardo-moraes

              Error starting userland proxy: listen tcp 0.0.0.0:80: listen: address already in use

              tcp 0.0.0.0:80, address already in use

              fiz uma instalação em um sistema limpo e rodou certinho, tava dando erro pois tentei em cima de outro que tinha o Apache2 já instalado, por isso esse conflito da porta...

              21 dias depois

              Testado e aprovado funcionando.

              2 meses depois

              Não consegui seguir o tutorial. Uso windows 10 pro. No powershell como administrador executo docker-compose up -d com o arquivo na c:\sga

              Arquivo docker-compose.yml

              version: '2'
              
              services:
                novosga:
                  image: novosga/novosga:latest
                  restart: always
                  depends_on:
                    - mysqldb
                  ports:
                    - "80:80"
                    - "2020:2020"
                  environment:
                    APP_ENV: 'prod'
                    # database connection
                    DATABASE_URL: 'mysql://novosgabase:mysql_enter@mysqldb:3306/novosgabase?charset=utf8mb4&serverVersion=5.7'
                    # default admin user
                    NOVOSGA_ADMIN_USERNAME: 'admin'
                    NOVOSGA_ADMIN_PASSWORD: '123456'
                    NOVOSGA_ADMIN_FIRSTNAME: 'Administrator'
                    NOVOSGA_ADMIN_LASTNAME: 'Global'
                    # default unity
                    NOVOSGA_UNITY_NAME: 'My Unity'
                    NOVOSGA_UNITY_CODE: 'U01'
                    # default no-priority
                    NOVOSGA_NOPRIORITY_NAME: 'Normal'
                    NOVOSGA_NOPRIORITY_DESCRIPTION: 'Normal service'
                    # default priority
                    NOVOSGA_PRIORITY_NAME: 'Priority'
                    NOVOSGA_PRIORITY_DESCRIPTION: 'Priority service'
                    # default place
                    NOVOSGA_PLACE_NAME: 'Box'
                    # Set TimeZone and locale
                    TZ: 'America/Sao_Paulo'
                    LANGUAGE: 'pt_BR'
                mysqldb:
                  image: mysql:5.7
                  restart: always
                  environment:
                    MYSQL_USER: 'novosga'
                    MYSQL_DATABASE: 'novosgabase'
                    MYSQL_ROOT_PASSWORD: 'mysql_root_enter'
                    MYSQL_PASSWORD: 'mysql_enter'
                    # Set TimeZone
                    TZ: 'America/Sao_Paulo'

                ronaldorx o erro que dá no powershell é: Windows named pipe error: o sistema não pode encontrar o arquivo especificado. (code: 2)

                  14 dias depois

                  ronaldorx você executa o comando estando no mesmo diretório aonde está o arquivo yml?

                  14 dias depois

                  sim, vou ate o diretorio e executo o comando e da este erro.

                    16 dias depois

                    Bom dia,

                    Esta rodando tudo certo aqui pelo Docker no Debian 10. Agora como eu faço para acessar o banco de dados MySQL de outro host ou até local, não estou conseguindo.

                    Obrigado.

                      5 meses depois

                      Gente boa tarde, consegui instalar o docker! fiz testes em alguns casos foi direto instalou de boas, em outros fiz assim: com os comandos docker pull novosga/novosga:latest e docker pull mysql:5.7 e depois docker-compose up -d dica do lamasbr .
                      tive que mudar a conf pra switch linux . Mas hoje vi que falta um detalhe da hora em timezone errada ta com uma hora a mais na senha impressa! alguem tem sugestão pra corrigir via comando ou no yml um timezone da bahia por exemplo. Abraco valeu!!!!

                        8 dias depois