Skip to content

[feature] Ability to reference a docker-compose.yml file from the tox config #190

Description

@AlanCoding

You have a way to reference a Dockerfile which already exists in someone's project:

[docker:app]
dockerfile = {toxinidir}/Dockerfile

I define the service details inside of my docker-compose.yml file. See ansible/django-ansible-base#632, and associated project, copying from the docker-compose.yml here:

---
services:
  postgres:
    image: "postgres:15"
    container_name: dab_postgres
    environment:
      POSTGRES_DB: dab_db
      POSTGRES_USER: dab
      POSTGRES_PASSWORD: dabing
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "dab", "-d", "dab_db"]
      interval: 10s
      timeout: 5s
      retries: 5
    ports:
      - "55432:5432"

What I would like to do is to say "use the details from the postgres service in file xyz". That would require a reference to the docker-compose.yml file (similar to your example with Dockerfile), and the name of the service. Spitball of this:

[docker:db]
compose_file = {toxinidir}/docker-compose.yml
service = postgres

This way, I wouldn't have to maintain a separate set of parameters. For instance, my tests are going to (at some level) hard-code the database username and password. I don't want to define the postgres username/password in docker-compose.yml for manual testing, and then also in tox.ini for CI. I'd rather have just 1 source of truth.

This does not appear to be possible right now, so filing as a feature request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions