Skip to content

Make DockerCompose.get_service_info public #239

Closed

Description

@csikb

Return a touple with the host and the port

def get_service_info(self, service, port):
    """
    Returns the host and the port for one of the services.

    Parameters
    ----------
    service: str
        Name of the docker compose service
    port: int
        The internal port to get the host for

    Returns
    -------
    (str, str):
        The hostname for the service, The port for the service
    """
    port_cmd = self.docker_compose_command() + ["port", service, str(port)]
    output = subprocess.check_output(port_cmd, cwd=self.filepath).decode("utf-8")
    result = str(output).rstrip().split(":")
    if len(result) != 2 or not all(result):
        raise NoSuchPortExposed(f"port {port} is not exposed for service {service}")
    return result[0], result[1]
# old approach
host = compose.get_service_host("hub", 4444)
port = compose.get_service_port("hub", 4444)
# new approach
host, port = compose.get_service_info("hub", 4444)

Activity

  1. tillahoffmann commented on Aug 28, 2022

    @tillahoffmann
    Contributor

    Sounds good. Fancy sending a PR?

  2. csikb commented on Aug 28, 2022

    @csikb
    Author

    Sure, I alredy did the coding part, let me look trough it if everything is OK with it.

  3. tillahoffmann commented on Aug 28, 2022

    @tillahoffmann
    Contributor

    Should just require removing the underscore in compose.py, right?

  4. csikb commented on Aug 28, 2022

    @csikb
    Author

    And adding a test case

  5. csikb commented on Aug 28, 2022

    @csikb
    Author
  6. totallyzen commented on Mar 19, 2024

    @totallyzen
    Contributor

    this is now obsolete! see the new docker compose v2 implementation!

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions