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

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

              alexdocarmo

              Você pode alterar o timezone no arquivo docker-compose.yml para America/Santiago para resolver o problema aí temporariamente. O arquivo ficaria assim:

              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/Santiago'
                    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/Santiago'

              Depois de editar e salvar o arquivo você precisa executar o comando docker-compose stop e docker-compose up -d para que as alterações façam efeito.

                educs Para que consiga acessar o banco MySQL que subiu através de um container do Docker através de outro host (outro computador/servidor) ou localmente (que não seja de um container) é necessário externalizar a porta no arquivo docker-compose.yml, caso contrário, não vai conseguir.

                Para externalizar a porta, o arquivo docker-compose.yml ficaria assim (note que estou colando somente a seção referente ao MySQL):

                  mysqldb:
                    image: mysql:5.7
                    restart: always
                    ports:
                      - "3306:3306"
                    environment:
                      MYSQL_USER: 'novosga'
                      MYSQL_DATABASE: 'novosgabase'
                      MYSQL_ROOT_PASSWORD: 'mysql_root_enter'
                      MYSQL_PASSWORD: 'mysql_enter'
                      # Set TimeZone
                      TZ: 'America/Sao_Paulo'

                Para mais informações, consulte a documentação do Docker: Compose file version 2 reference

                Boa tarde, como voces fazem para acessar a triagem e o painel web depois dessa instalação via docker ?

                  lamasbr Deu certo aqui, valeu! Ainda nao entendi bem o conceito do docker container tudo isso.....