Example #1
0
def build_requirements(project):
    """Build the image that contains python requirements"""
    from derex.runner.build import build_requirements_image

    click.echo(
        f'Building docker image {project.requirements_image_tag} ("{project.name}" requirements)'
    )
    build_requirements_image(project)
Example #2
0
def generate_local_docker_compose(project: Project) -> Path:
    """This function is called every time ddc-project is run.
    It assembles a docker-compose file from the given configuration.
    It should execute as fast as possible.
    """
    local_compose_path = project.private_filepath("docker-compose.yml")
    template_path = abspath_from_egg("derex.runner",
                                     "derex/runner/templates/local.yml.j2")
    final_image = None
    if image_exists(project.image_tag):
        final_image = project.image_tag
    if not image_exists(project.requirements_image_tag):
        click.echo("Building requirements image")
        build_requirements_image(project)
    tmpl = Template(template_path.read_text())
    text = tmpl.render(project=project, final_image=final_image)
    local_compose_path.write_text(text)
    return local_compose_path