Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erros na construção da imagem app-forum-api e prometheus-forum-api

Olá pessoal, eu tive problemas para subir esses 2 containers, um com o nome prometheus-forum-api e o outro com o nome app-forum-api. o erro no container nome "app-forum-api":

  • unable to allocate file descriptor table - out of memory
  • solução:
  • atualizar a pom.xml para construir logo direto uma imagem de container pelo maven `
     <finalName>forum</finalName>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <configuration>
                 <image>
                   <name>forum</name>
                 </image>
          <!-- 
           for more options, check:
           https://docs.spring.io/spring-boot/docs/2.4.2/maven-plugin/reference/htmlsingle/#build-image 
          -->
               </configuration>
         </plugin>
     </plugins>
    `
  • código para construir a imagem que será usada dentro do docker-compose.yaml: ./mvnw clean spring-boot:build-image
  • daí no caso, só atualizar dentro do docker-compose.yaml:
    app-forum-api:
     image: docker.io/library/forum:latest
     container_name: app-forum-api
  • fonte: https://www.baeldung.com/ops/docker-jvm-heap-size

Agora o erro no prometheus é a questão da segurança da pasta prometheus, como foi comentado no vídeo, porém em vez de definir a permissão como 777, eu utilizei a solução correta para esse caso, que define até por questões de segurança, que é adicionar o UID/GID no serviço do prometheus-forum-api dentro do docker-compose.yaml, para isso primeiro é preciso saber o UID/GID com o comando echo $UID, o meu deu "1000", daí com esse número em mãos, basta adicionar ao user dentro do docker-compose.yaml:

prometheus-forum-api:
    image: prom/prometheus:latest
    user: "1000:1000"

o prometheus resolveu, o app-forum-api também executou, porém ainda não fica disponível para o nginx, é necessário verificar isso também, qualquer coisa, atualizo aqui

1 resposta
solução!

Oi, Daniel! Tudo bem?

Seria importante entender como seu ambiente foi configurado para chegarmos a causa raiz do seu erro, esse seria inclusive um ponto importante para saber qual diferença foi a causa ofensora na subida dos contêineres.

Você pode trazer informações como versão do maven, docker e docker-compose, por favor?

Não aconselho alterar os arquivos originais do curso, mas sim adequar o ambiente a execução do modelo original, porém, se as configurações estiverem depreciadas, farei as atualizações nos arquivos do curso, por isso é importante entender como estavam as condições de seu ambiente quando o erro ocorreu.

Quanto a questão os permissionamento 777, ele não foi incorreto, mas de forma alguma deve ser feito em ambientes produtivos. Devido ao curso ser focado em métricas, prometheus e Grafana, os arquivos e comandos foram simplificados para facilitar a experiência dos participantes sem levar em conta detalhes de segurança com infraestrutura como permissionamento Unix/Linux.

Caso o 777 seja uma permissão incomoda em algum momento, sugiro utilizar 0775 para diretórios e 0664 para arquivos, ainda assim, para evitar qualquer erro relacionado a manipulação de arquivos e diretórios pelo usuário do conteiner, sugiro manter o 777 mesmo.

Um bom comando para adequação de permissionamento, seria utilizar o find com parametro de execução vinculado ao chmod afim de adequar diretórios e arquivos a permissões especificas, mas no caso desse curso, isso realmente não é necessário, afim de não adicionar densidade a um assunto que não é o objetivo do conteúdo.

Muito obrigado por sua contribuição e por compartilhar essa solução, será interessante desenvolver este tópico e com certeza esse conteúdo enriquece em muito este fórum, sem sombra de dúvidas.

Abraços e bons estudos!