forked from phoenix-oss/llama-stack-mirror
While rebuilding a stack using the `docker` image type and having `LLAMA_STACK_DIR` set so it installs `llama_stack` from my local source, I noticed that once built, it just used the image build cache and didn't pull in changes to my source. 1. Install in editable mode (`pip install -e`) for dev purposes. 2. Mount the source into the container for `configure` and `run` so that the editable install works. Signed-off-by: Russell Bryant <rbryant@redhat.com>
44 lines
1 KiB
Bash
Executable file
44 lines
1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
DOCKER_BINARY=${DOCKER_BINARY:-docker}
|
|
DOCKER_OPTS=${DOCKER_OPTS:-}
|
|
LLAMA_STACK_DIR=${LLAMA_STACK_DIR:-}
|
|
|
|
set -euo pipefail
|
|
|
|
error_handler() {
|
|
echo "Error occurred in script at line: ${1}" >&2
|
|
exit 1
|
|
}
|
|
|
|
trap 'error_handler ${LINENO}' ERR
|
|
|
|
if [ $# -lt 2 ]; then
|
|
echo "Usage: $0 <container name> <build file path>"
|
|
exit 1
|
|
fi
|
|
|
|
docker_image="$1"
|
|
host_build_dir="$2"
|
|
container_build_dir="/app/builds"
|
|
|
|
# Disable SELinux labels
|
|
DOCKER_OPTS="$DOCKER_OPTS --security-opt label=disable"
|
|
|
|
mounts=""
|
|
if [ -n "$LLAMA_STACK_DIR" ]; then
|
|
mounts="$mounts -v $(readlink -f $LLAMA_STACK_DIR):/app/llama-stack-source"
|
|
fi
|
|
|
|
set -x
|
|
$DOCKER_BINARY run $DOCKER_OPTS -it \
|
|
-v $host_build_dir:$container_build_dir \
|
|
$mounts \
|
|
$docker_image \
|
|
llama stack configure ./llamastack-build.yaml --output-dir $container_build_dir
|