1
resposta

Testes com Docker

Realizei a instalação do Docker conforme as instruções do curso, porém estou com problema para rodar os testes depois da instalação. Fica carregando infinitamente após a execução da linha: private readonly MsSqlContainer _msSqlContainer = new MsSqlBuilder() .WithImage("mcr.microsoft.com/mssql/server:2022-latest") .Build(); public async Task InitializeAsync() { await _msSqlContainer.StartAsync(); //... } Acredito que o problema seja na conteinerização, o estranho é que no docker desktop não é me apresentado nenhum erro.

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

Procurei respostas na internet e realizei a reinstalação dos componentes e do Docker mas não tive sucesso.

1 resposta

Olá Elias, bom dia, tudo bom?

Bora tentar resolver isso juntos. Aparentemente, o container do SQL Server está rodando, mas o código não está conseguindo se conectar a ele. Aqui estão algumas sugestões para você tentar:

  1. Verifique as Configurações do Container:

    • Certifique-se de que o container está configurado corretamente e que a porta 1433 (porta padrão do SQL Server) está exposta e mapeada corretamente. Na imagem, parece que a porta está mapeada para 53158:1433, então verifique se você está usando a porta correta na sua aplicação.
  2. Aguarde o Container Inicializar:

    • Às vezes, o SQL Server pode demorar um pouco para inicializar completamente. Tente adicionar um pequeno atraso antes de tentar se conectar ao banco de dados. Você pode usar Task.Delay para isso:
      public async Task InitializeAsync()
      {
          await _msSqlContainer.StartAsync();
          await Task.Delay(10000); // Aguardar 10 segundos
          //...
      }
      
  3. Verifique os Logs do Container:

    • Verifique os logs do container para ver se há algum erro durante a inicialização. Você pode fazer isso através do Docker Desktop ou usando o comando:
      docker logs <container_id>
      
  4. Testar a Conexão Manualmente:

    • Tente se conectar ao banco de dados manualmente usando uma ferramenta como SQL Server Management Studio (SSMS) ou Azure Data Studio para garantir que o banco de dados está acessível.
  5. Configuração de Rede:

    • Certifique-se de que não há problemas de rede que possam estar impedindo a conexão com o container. Verifique as configurações de firewall e rede do Docker.
  6. Verifique a Versão do Docker:

    • Certifique-se de que você está usando uma versão compatível do Docker. Às vezes, versões mais antigas podem ter bugs ou incompatibilidades.

Aqui está um exemplo de como você pode modificar o código para adicionar um atraso:

private readonly MsSqlContainer _msSqlContainer = new MsSqlBuilder()
    .WithImage("mcr.microsoft.com/mssql/server:2022-latest")
    .Build();

public async Task InitializeAsync()
{
    await _msSqlContainer.StartAsync();
    await Task.Delay(10000); // Aguardar 10 segundos
    //...
}

Espero que essas sugestões ajudem a resolver o problema. Bons estudos!