Merge pull request #1058 from langchain-ai/nc/18jul/cli-dockerfile

cli: Add dockerfile command to write dockerfile
This commit is contained in:
Nuno Campos
2024-07-18 09:28:44 -07:00
committed by GitHub
3 changed files with 35 additions and 14 deletions
+15
View File
@@ -452,6 +452,21 @@ def build(
_build(runner, set, config, config_json, platform, base_image, pull, tag)
@OPT_CONFIG
@click.argument("save_path", type=click.Path(resolve_path=True))
@cli.command(help="Generate a Dockerfile for langgraph API server")
@log_command
def dockerfile(save_path: pathlib.Path, config: pathlib.Path):
with open(config) as f:
config_json = langgraph_cli.config.validate_config(json.load(f))
with open(save_path, "w") as f:
f.write(
langgraph_cli.config.config_to_docker(
config, config_json, "langchain/langgraph-api"
)
)
def prepare_args_and_stdin(
*,
capabilities: DockerCapabilities,
+15 -11
View File
@@ -232,8 +232,7 @@ RUN set -ex && \\
'[tool.setuptools.package-data]' \\
'"*" = ["**/*"]'; do \\
echo "$line" >> /deps/__outer_{fullpath.name}/pyproject.toml; \\
done
"""
done"""
for fullpath, (relpath, destpath) in local_deps.faux_pkgs.items()
)
local_pkgs_str = os.linesep.join(
@@ -241,19 +240,24 @@ RUN set -ex && \\
for fullpath, relpath in local_deps.real_pkgs.items()
)
installs = f"{os.linesep}{os.linesep}".join(
filter(
None,
[
pip_config_file_str,
pip_pkgs_str,
pip_reqs_str,
local_pkgs_str,
faux_pkgs_str,
],
)
)
return f"""FROM {base_image}:{config['python_version']}
{os.linesep.join(config["dockerfile_lines"])}
{pip_config_file_str}
{pip_pkgs_str}
{pip_reqs_str}
{local_pkgs_str}
{faux_pkgs_str}
{installs}
RUN {pip_install} -e /deps/*
+5 -3
View File
@@ -1,13 +1,15 @@
{
"python_version": "3.12",
"pip_config_file": "pipconfig.txt",
"dockerfile_lines": ["ARG meow"],
"dockerfile_lines": [
"ARG meow"
],
"dependencies": [
"langchain_openai",
"."
],
"graphs": {
"agent": "tests/unit_tests/agent.py:graph"
"agent": "graphs/agent.py:graph"
},
"env": ".env"
}
}