testcontainers / testcontainers/testcontainers-java

[Bug]: Error in running test on kube-jenkins

Aperta
#5,602 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

resolution/waiting-for-info type/bug
Lingua principale
Java
Stelle
8.7k
Fork
1.9k
Merge medio
2g 17h
PR unite (30g)
9

Descrizione

Module

PostgreSQL

Testcontainers version

1.16.3

Using the latest Testcontainers version?

Yes

Host OS

linux

Host Arch

x86

Docker version
Container Runtime Version:  docker://20.10.7
What happened?

I am using testcontainers for my unit test for repository, it passes locally but failed in the jenkins, and it only have one line log trace:

EntityRepositoryTest > initializationError FAILED
  com.github.dockerjava.api.exception.InternalServerErrorException at DefaultInvocationBuilder.java:247

Here are my code, I retaged and pushed postgres:13.2 to company's private jfrog

public class MyRepositoryPostgresqlContainer extends PostgreSQLContainer<MyRepositoryPostgresqlContainer> {

    static private DockerImageName myImage = DockerImageName.parse("comany./postgres:13.2").asCompatibleSubstituteFor("postgres");

    private static MyRepositoryPostgresqlContainer container;

    private MyRepositoryPostgresqlContainer(DockerImageName myImage) {
        super(myImage);
    }

    public static MyRepositoryPostgresqlContainer getInstance() {
        if (container == null) {
            container = new MyRepositoryPostgresqlContainer(myImage)
                    .withDatabaseName("XXX")
                    .withUsername("XXX")
                    .withPassword("XXX);
        }
        return container;
    }
   ...
}
@ContextConfiguration(initializers = {MyTest.Initializer.class})
public class MyTest {

    @ClassRule
    public static PostgreSQLContainer postgreSQLContainer = MyRepositoryPostgresqlContainer.getInstance();

    static class Initializer
            implements ApplicationContextInitializer<ConfigurableApplicationContext> {
        public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
            TestPropertyValues.of(
                    "spring.datasource.url=" + postgreSQLContainer.getJdbcUrl(),
                    "spring.datasource.username=" + postgreSQLContainer.getUsername(),
                    "spring.datasource.password=" + postgreSQLContainer.getPassword()
            ).applyTo(configurableApplicationContext.getEnvironment());
        }
    }
}
@SpringBootTest
@RunWith(SpringRunner.class)
public class EntityRepositoryTest extends MyTest{
    @Autowired
    private MyRepository repo;
   @Test
    public void test() {
         MyEntity myEntity = MyEntity.builder().
                ....
                .build();
       repo.saveAndFlush(myEntity);
        assertEquals(1, repo.findAll().size());
    }
}

Any suggestion helps, Thanks

Relevant log output
EntityRepositoryTest > initializationError FAILED
  com.github.dockerjava.api.exception.InternalServerErrorException at DefaultInvocationBuilder.java:247


### Additional Information

_No response_

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con EntityRepositoryTest e MyRepositoryPostgresqlContainer, quindi riproduci il fallimento nell’ambiente kube-jenkins utilizzando la configurazione delle immagini Docker e PostgreSQL indicata. Raccogli i log completi di Docker e Jenkins oltre la singola riga InternalServerErrorException e confrontali con un’esecuzione locale riuscita. Il lavoro è completato quando viene identificata la causa specifica dell’ambiente e viene documentata o implementata una risoluzione verificata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
docker, java, postgresql
Ambito
ci-cd, databases, testing
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.