1
resposta

Conteiner parando

Boa tarde!

Notei que, quando rodo o comando docker run -d --name product-service --network microservices-network -p 5003:5003 product-service:1.0, ele cria o conteiner, porem, quando acesso a web e tento criar um usuario da erro e logo em seguida o conteiner para.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue o log

root@rodrigo:/home/rodrigo/Alura/CI-CD-DOCKER/docker-automation/burguer-app/product-service# docker logs product-service
Traceback (most recent call last):
File "/app/app.py", line 2, in
from controllers.product_controller import product_bp
File "/app/controllers/product_controller.py", line 11, in
initialize_products()
File "/app/services/product_service.py", line 85, in initialize_products
if products_col.count_documents({}) == 0:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/collection.py", line 2154, in count_documents
return self._retryable_non_cursor_read(_cmd, session, _Op.COUNT)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/collection.py", line 2168, in _retryable_non_cursor_read
return client._retryable_read(func, self._read_preference_for(s), s, operation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/mongo_client.py", line 2026, in _retryable_read
return self._retry_internal(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/_csot.py", line 125, in csot_wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/mongo_client.py", line 1993, in _retry_internal
).run()
^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/mongo_client.py", line 2730, in run
return self._read() if self._is_read else self._write()
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/mongo_client.py", line 2875, in _read
self._server = self._get_server()
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/mongo_client.py", line 2823, in _get_server
return self._client._select_server(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/mongo_client.py", line 1812, in _select_server
server = topology.select_server(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/topology.py", line 409, in select_server
server = self._select_server(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/topology.py", line 387, in _select_server
servers = self.select_servers(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/topology.py", line 294, in select_servers
server_descriptions = self._select_servers_loop(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pymongo/synchronous/topology.py", line 344, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms), Timeout: 30s, Topology Description: <TopologyDescription id: 6912130166db28f73e3423d2, topology_type: Unknown, servers: [<ServerDescription ('localhost', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('localhost:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms)')>]>
root@rodrigo:/home/rodrigo/Alura/CI-CD-DOCKER/docker-automation/burguer-app/product-service#

Pelo erro, to tomando conection refused no banco do mongodb. Mas ainda nao sei como resolver, poderiam me ajudar?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, Rodrigo! Tudo bem?

O seu contêiner está tentando se conectar ao MongoDB na localhost:27017, mas não está conseguindo estabelecer a conexão. Isso geralmente acontece quando o MongoDB não está rodando ou não está acessível a partir do contêiner.

Aqui estão algumas sugestões para resolver o problema:

  1. Verifique se o MongoDB está rodando: Certifique-se de que o serviço do MongoDB está ativo e escutando na porta correta. Você pode verificar isso executando docker ps e procurando pelo contêiner do MongoDB.

  2. Configure a rede corretamente: Se o MongoDB estiver rodando em outro contêiner, certifique-se de que ambos os contêineres estão na mesma rede Docker. Você pode criar uma rede com docker network create microservices-network e adicionar os contêineres a essa rede.

  3. Use o nome do serviço: Em vez de usar localhost para se conectar ao MongoDB, use o nome do serviço ou o nome do contêiner do MongoDB. Por exemplo, se o contêiner do MongoDB estiver nomeado como mongodb, use mongodb:27017 na string de conexão.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.