Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Running webhook.site as a docker-compose sporadically fails on semaphore using testcontainers. #98

Open
rjain-confluent opened this issue Oct 23, 2020 · 1 comment

Comments

@rjain-confluent
Copy link

Hi. I'm trying to write a Java / junit integration test which requires the following testcontainers: postgres, kafka and a webhook container which is based out of the docker-file specified at https://github.com/fredsted/webhook.site/blob/master/docker-compose.yml.Following is the code snippet:

  protected static final Map.Entry<String, Integer> WEBHOOK_SERVICE_PORT = Maps.immutableEntry(
      "webhook",
      80
  );  public static void prepare(TestContext context) throws JoseException {
    vertx = Vertx.vertx();    kafkaContainer = new KafkaContainer();
    kafkaContainer.start();    postgreSqlContainer = new PostgreSQLContainer<>().withDatabaseName("testDB")
        .withUsername("testUser")
        .withPassword("testPassword")
        .withInitScript("init.sql");    postgreSqlContainer.start();    webhookContainer = WebhookUtils.createWebhookcontainer(WEBHOOK_SERVICE_PORT);
    webhookContainer.start();
 } public static DockerComposeContainer createWebhookcontainer(
      Entry<String, Integer> webhookServicePortEntry
 ) {
   return new DockerComposeContainer(
        new File("src/test/resources/docker-webhook/docker-compose.yml")
    ).withExposedService(webhookServicePortEntry.getKey(), webhookServicePortEntry.getValue())
        .waitingFor(webhookServicePortEntry.getKey(), Wait.forHttp("/"));
 }

I tweaked the docker-compose.yml file slightly to ensure a random port:

version: '3'
services:
  webhook:
    image: "fredsted/webhook.site"
    # Enable build for development:
    # build:
    #   dockerfile: Dockerfile
    #   context: ./
    command: php artisan queue:work --daemon --tries=1 --timeout=1

    environment:
      - APP_ENV=dev
      - APP_DEBUG=true
      - APP_URL=http://localhost:8084
      - APP_LOG=errorlog
      - DB_CONNECTION=sqlite
      - REDIS_HOST=redis
      - BROADCAST_DRIVER=redis
      - CACHE_DRIVER=redis
      - QUEUE_DRIVER=redis
      - ECHO_HOST_MODE=path

  redis:
    image: "redis:alpine"

  laravel-echo-server:
    image: "mintopia/laravel-echo-server"
    environment:
      - LARAVEL_ECHO_SERVER_AUTH_HOST=http://webhook
      - LARAVEL_ECHO_SERVER_HOST=0.0.0.0
      - LARAVEL_ECHO_SERVER_PORT=6001
      - ECHO_REDIS_PORT=6379
      - ECHO_REDIS_HOST=redis
      - ECHO_PROTOCOL=http
      - ECHO_ALLOW_CORS=true
      - ECHO_ALLOW_ORIGIN=*
      - ECHO_ALLOW_METHODS=*
      - ECHO_ALLOW_HEADERS=*

I get the following error:

java.lang.RuntimeException: org.testcontainers.containers.ContainerLaunchException: Timed out waiting for container port to open (localhost ports: [32845] should be listening)17:34
Caused by: org.testcontainers.containers.ContainerLaunchException: Timed out waiting for container port to open (localhost ports: [32845] should be listening)17:34
@rjain-confluent
Copy link
Author

Full stack trace:

org.testcontainers.containers.ContainerLaunchException: Container startup failed
Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container
Caused by: org.testcontainers.containers.ContainerLaunchException: Aborting attempt to link to container 7ofrz52ifape_webhook_1 as it is not running

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant