diff --git a/docker/build-container.sh b/docker/build-container.sh index 5774c28a..66235ad3 100755 --- a/docker/build-container.sh +++ b/docker/build-container.sh @@ -20,9 +20,17 @@ if [[ -z "$GITHUB_TOKEN" ]]; then exit 1 fi +# Set llama.cpp base image, customizable using the BASE_LLAMACPP_IMAGE environment +# variable, this permits testing with forked llama.cpp repositories +BASE_IMAGE=${BASE_LLAMACPP_IMAGE:-ghcr.io/ggml-org/llama.cpp} + +# Set llama-swap repository, automatically uses GITHUB_REPOSITORY variable +# to enable easy container builds on forked repos +LS_REPO=${GITHUB_REPOSITORY:-mostlygeek/llama-swap} + # the most recent llama-swap tag # have to strip out the 'v' due to .tar.gz file naming -LS_VER=$(curl -s https://api.github.com/repos/mostlygeek/llama-swap/releases/latest | jq -r .tag_name | sed 's/v//') +LS_VER=$(curl -s https://api.github.com/repos/${LS_REPO}/releases/latest | jq -r .tag_name | sed 's/v//') if [ "$ARCH" == "cpu" ]; then # cpu only containers just use the server tag @@ -46,8 +54,8 @@ if [[ -z "$LCPP_TAG" ]]; then fi for CONTAINER_TYPE in non-root root; do - CONTAINER_TAG="ghcr.io/mostlygeek/llama-swap:v${LS_VER}-${ARCH}-${LCPP_TAG}" - CONTAINER_LATEST="ghcr.io/mostlygeek/llama-swap:${ARCH}" + CONTAINER_TAG="ghcr.io/${LS_REPO}:v${LS_VER}-${ARCH}-${LCPP_TAG}" + CONTAINER_LATEST="ghcr.io/${LS_REPO}:${ARCH}" USER_UID=0 USER_GID=0 USER_HOME=/root @@ -62,7 +70,8 @@ for CONTAINER_TYPE in non-root root; do echo "Building $CONTAINER_TYPE $CONTAINER_TAG $LS_VER" docker build -f llama-swap.Containerfile --build-arg BASE_TAG=${BASE_TAG} --build-arg LS_VER=${LS_VER} --build-arg UID=${USER_UID} \ - --build-arg GID=${USER_GID} --build-arg USER_HOME=${USER_HOME} -t ${CONTAINER_TAG} -t ${CONTAINER_LATEST} . + --build-arg LS_REPO=${LS_REPO} --build-arg GID=${USER_GID} --build-arg USER_HOME=${USER_HOME} -t ${CONTAINER_TAG} -t ${CONTAINER_LATEST} \ + --build-arg BASE_IMAGE=${BASE_IMAGE} . if [ "$PUSH_IMAGES" == "true" ]; then docker push ${CONTAINER_TAG} docker push ${CONTAINER_LATEST} diff --git a/docker/llama-swap.Containerfile b/docker/llama-swap.Containerfile index 29f35802..4e03aa06 100644 --- a/docker/llama-swap.Containerfile +++ b/docker/llama-swap.Containerfile @@ -1,8 +1,10 @@ +ARG BASE_IMAGE=ghcr.io/ggml-org/llama.cpp ARG BASE_TAG=server-cuda -FROM ghcr.io/ggml-org/llama.cpp:${BASE_TAG} +FROM ${BASE_IMAGE}:${BASE_TAG} # has to be after the FROM ARG LS_VER=170 +ARG LS_REPO=mostlygeek/llama-swap # Set default UID/GID arguments ARG UID=10001 @@ -28,9 +30,9 @@ USER $UID:$GID WORKDIR /app RUN \ - curl -LO https://github.com/mostlygeek/llama-swap/releases/download/v"${LS_VER}"/llama-swap_"${LS_VER}"_linux_amd64.tar.gz && \ - tar -zxf llama-swap_"${LS_VER}"_linux_amd64.tar.gz && \ - rm llama-swap_"${LS_VER}"_linux_amd64.tar.gz + curl -LO "https://github.com/${LS_REPO}/releases/download/v${LS_VER}/llama-swap_${LS_VER}_linux_amd64.tar.gz" && \ + tar -zxf "llama-swap_${LS_VER}_linux_amd64.tar.gz" && \ + rm "llama-swap_${LS_VER}_linux_amd64.tar.gz" COPY --chown=$UID:$GID config.example.yaml /app/config.yaml