Olá Danielle, eu estava com o mesmo problema que vc e hoje finalmente encontrei uma solução e espero que funcione para vc tb e para todos os outros que estejam com o mesmo problema.
Independente de usar a vesão 2019 ou 2022, nenhuma funcionava, deixei rodando mais de 1h para finalmente dar System.TimeoutException
.
Depois de tentar várias coisas, o que deu certo foi simplesmente apagar a linha .WithImage("mcr.microsoft.com/mssql/server:2022-latest")
, porque a imagem do SQL Server já tem uma configuração pré-definida que usa a imagem mcr.microsoft.com/mssql/server:2019-CU18-ubuntu-20.04
. A primeira vez que rodei os teste com essa imagem deu erro, foi cancelado, mas depois rodei várias vezes e deu certo em todas.
Então ficou assim:
private readonly MsSqlContainer _msSqlContainer = new MsSqlBuilder().Build();
Vi essa opção nesse artigo: https://code-maze.com/csharp-testing-using-testcontainers-for-net-and-docker/
Não sei se estou certa, mas imagino que o problema talvez seja a versão do windows e, consequentemente, a do docker desktop usada. Para eu poder usar o docker precisei instalar WSL 2, Windows Subsystem for Linux, logo precisei da imagem para o Linux. Se a instrutora usa o docker desktop sem usar o WSL, então consegue usar a imagem para o window. Cheguei a essa conclusão porque na documentação do Docker está escrito isto:
To run Windows containers, you need Windows 10 or Windows 11 Professional or Enterprise edition. Windows Home or Education editions only allow you to run Linux containers.
=)