diff --git a/llama_stack/distribution/build_container.sh b/llama_stack/distribution/build_container.sh index c128729e1..0604d084e 100755 --- a/llama_stack/distribution/build_container.sh +++ b/llama_stack/distribution/build_container.sh @@ -163,9 +163,6 @@ EOF if [ -n "$run_config" ]; then # Copy the run config to the build context since it's an absolute path cp "$run_config" "$BUILD_CONTEXT_DIR/run.yaml" - add_to_container << EOF -COPY run.yaml $RUN_CONFIG_PATH -EOF # Parse the run.yaml configuration to identify external provider directories # If external providers are specified, copy their directory to the container @@ -173,12 +170,15 @@ EOF python_cmd=$(get_python_cmd) external_providers_dir=$($python_cmd -c "import yaml; config = yaml.safe_load(open('$run_config')); print(config.get('external_providers_dir') or '')") external_providers_dir=$(eval echo "$external_providers_dir") - if [ -n "$external_providers_dir" ] && [ -d "$external_providers_dir" ]; then + if [ -n "$external_providers_dir" ]; then + if [ -d "$external_providers_dir" ]; then echo "Copying external providers directory: $external_providers_dir" cp -r "$external_providers_dir" "$BUILD_CONTEXT_DIR/providers.d" add_to_container << EOF COPY providers.d /.llama/providers.d EOF + fi + # Edit the run.yaml file to change the external_providers_dir to /.llama/providers.d if [ "$(uname)" = "Darwin" ]; then sed -i.bak -e 's|external_providers_dir:.*|external_providers_dir: /.llama/providers.d|' "$BUILD_CONTEXT_DIR/run.yaml" @@ -187,6 +187,11 @@ EOF sed -i 's|external_providers_dir:.*|external_providers_dir: /.llama/providers.d|' "$BUILD_CONTEXT_DIR/run.yaml" fi fi + + # Copy run config into docker image + add_to_container << EOF +COPY run.yaml $RUN_CONFIG_PATH +EOF fi stack_mount="/app/llama-stack-source"