Skip to content

Docker Compose setup fails on wait-for-it host web:8000 and missing runtime .env #2477

Open

Description

@ABHIGYA0205

While setting up VulnerableCode locally with Docker Compose, I hit a few issues in docker-compose.yml and .dockerignore:

  1. Scheduler and RQ workers wait on web:8000 instead of vulnerablecode:8000
    vulnerablecode_scheduler, vulnerablecode_rqworker, and vulnerablecode_rqworker_high run wait-for-it web:8000, which does not match any service name in docker-compose.yml (nginx proxies to vulnerablecode:8000). On startup, all three time out:

    vulnerablecode_rqworker-1       | wait-for-it: timeout occurred after waiting 15 seconds for web:8000
    vulnerablecode_rqworker_high-1  | wait-for-it: timeout occurred after waiting 15 seconds for web:8000
    vulnerablecode_scheduler-1      | wait-for-it: timeout occurred after waiting 15 seconds for web:8000
    

    Updating this to wait-for-it -t 60 vulnerablecode:8000 waits on the actual service and allows initial migrations to finish before workers start.

  2. .env is not loaded via env_file at container runtime (and is missing from .dockerignore)
    docker-compose.yml currently only specifies docker.env under env_file. If images are built before make envfile is run, all application and worker containers exit immediately on startup:

    django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable
    

    Adding .env to .dockerignore (alongside docker.env) keeps build layers clean, and loading .env with required: false in docker-compose.yml passes SECRET_KEY and ALTCHA_HMAC_KEY at runtime without breaking setups that use /etc/vulnerablecode/.env.

  3. Obsolete top-level version: "3" key
    Docker Compose v2 logs a deprecation warning on every command until version: "3" is removed.

I have tested these fixes locally and will open a PR with a regression test shortly.

Activity

  1. Anurag-S1ngh commented on Oct 24, 2026

    @Anurag-S1ngh

    Hi, I'd like to take this issue. Could you assign it to me?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions