|
6 | 6 | # Can be run locally or in CI pipelines. |
7 | 7 | # |
8 | 8 | # Usage: |
9 | | -# ./scripts/docker-smoke-test.sh <image> [target] |
| 9 | +# ./docker/test-image.sh <image> [target] |
10 | 10 | # |
11 | 11 | # Arguments: |
12 | 12 | # image - Docker image to test (e.g., hindsight-api:test, ghcr.io/vectorize-io/hindsight:latest) |
13 | 13 | # target - Optional: 'cp-only' for control plane, otherwise assumes API image (default: api) |
14 | 14 | # |
15 | 15 | # Environment variables: |
16 | | -# GROQ_API_KEY - Required for API/standalone images (LLM verification) |
17 | | -# HINDSIGHT_API_LLM_PROVIDER - LLM provider (default: groq) |
18 | | -# HINDSIGHT_API_LLM_MODEL - LLM model (default: llama-3.3-70b-versatile) |
19 | | -# SMOKE_TEST_TIMEOUT - Timeout in seconds (default: 120) |
20 | | -# SMOKE_TEST_CONTAINER_NAME - Container name (default: hindsight-smoke-test) |
| 16 | +# GROQ_API_KEY - Required for API/standalone images (LLM verification) |
| 17 | +# HINDSIGHT_API_LLM_PROVIDER - LLM provider (default: groq) |
| 18 | +# HINDSIGHT_API_LLM_MODEL - LLM model (default: llama-3.3-70b-versatile) |
| 19 | +# HINDSIGHT_API_EMBEDDINGS_PROVIDER - Embeddings provider (optional, for slim images: openai, cohere, tei) |
| 20 | +# HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY - OpenAI API key for embeddings (optional) |
| 21 | +# HINDSIGHT_API_RERANKER_PROVIDER - Reranker provider (optional, for slim images: cohere, tei) |
| 22 | +# HINDSIGHT_API_COHERE_API_KEY - Cohere API key for reranking (optional) |
| 23 | +# SMOKE_TEST_TIMEOUT - Timeout in seconds (default: 120) |
| 24 | +# SMOKE_TEST_CONTAINER_NAME - Container name (default: hindsight-smoke-test) |
21 | 25 | # |
22 | 26 | # Examples: |
23 | | -# # Test a locally built image |
24 | | -# ./scripts/docker-smoke-test.sh hindsight-api:test |
| 27 | +# # Test a locally built full image |
| 28 | +# ./docker/test-image.sh hindsight-api:test |
25 | 29 | # |
26 | 30 | # # Test a released image |
27 | | -# ./scripts/docker-smoke-test.sh ghcr.io/vectorize-io/hindsight:latest |
| 31 | +# ./docker/test-image.sh ghcr.io/vectorize-io/hindsight:latest |
28 | 32 | # |
29 | 33 | # # Test control plane image |
30 | | -# ./scripts/docker-smoke-test.sh hindsight-control-plane:test cp-only |
| 34 | +# ./docker/test-image.sh hindsight-control-plane:test cp-only |
| 35 | +# |
| 36 | +# # Test slim image with external providers |
| 37 | +# export GROQ_API_KEY=gsk_xxx |
| 38 | +# export HINDSIGHT_API_EMBEDDINGS_PROVIDER=openai |
| 39 | +# export HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY=sk-xxx |
| 40 | +# export HINDSIGHT_API_RERANKER_PROVIDER=cohere |
| 41 | +# export HINDSIGHT_API_COHERE_API_KEY=xxx |
| 42 | +# ./docker/test-image.sh hindsight-slim:test |
31 | 43 | # |
32 | 44 | # Exit codes: |
33 | 45 | # 0 - Success (container healthy) |
@@ -108,12 +120,32 @@ if [ "$TARGET" = "cp-only" ]; then |
108 | 120 | -p "${HEALTH_PORT}:${HEALTH_PORT}" \ |
109 | 121 | "$IMAGE" |
110 | 122 | else |
111 | | - docker run -d --name "$CONTAINER_NAME" \ |
112 | | - -e HINDSIGHT_API_LLM_PROVIDER="$LLM_PROVIDER" \ |
113 | | - -e HINDSIGHT_API_LLM_API_KEY="${GROQ_API_KEY}" \ |
114 | | - -e HINDSIGHT_API_LLM_MODEL="$LLM_MODEL" \ |
115 | | - -p "${HEALTH_PORT}:${HEALTH_PORT}" \ |
116 | | - "$IMAGE" |
| 123 | + # Build docker run command with required and optional env vars |
| 124 | + DOCKER_CMD="docker run -d --name $CONTAINER_NAME" |
| 125 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_PROVIDER=$LLM_PROVIDER" |
| 126 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_API_KEY=${GROQ_API_KEY}" |
| 127 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_LLM_MODEL=$LLM_MODEL" |
| 128 | + |
| 129 | + # Add optional embeddings provider config |
| 130 | + if [ -n "${HINDSIGHT_API_EMBEDDINGS_PROVIDER:-}" ]; then |
| 131 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_EMBEDDINGS_PROVIDER=${HINDSIGHT_API_EMBEDDINGS_PROVIDER}" |
| 132 | + fi |
| 133 | + if [ -n "${HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY:-}" ]; then |
| 134 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY=${HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY}" |
| 135 | + fi |
| 136 | + |
| 137 | + # Add optional reranker provider config |
| 138 | + if [ -n "${HINDSIGHT_API_RERANKER_PROVIDER:-}" ]; then |
| 139 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_RERANKER_PROVIDER=${HINDSIGHT_API_RERANKER_PROVIDER}" |
| 140 | + fi |
| 141 | + if [ -n "${HINDSIGHT_API_COHERE_API_KEY:-}" ]; then |
| 142 | + DOCKER_CMD="$DOCKER_CMD -e HINDSIGHT_API_COHERE_API_KEY=${HINDSIGHT_API_COHERE_API_KEY}" |
| 143 | + fi |
| 144 | + |
| 145 | + DOCKER_CMD="$DOCKER_CMD -p ${HEALTH_PORT}:${HEALTH_PORT}" |
| 146 | + DOCKER_CMD="$DOCKER_CMD $IMAGE" |
| 147 | + |
| 148 | + eval $DOCKER_CMD |
117 | 149 | fi |
118 | 150 |
|
119 | 151 | # Wait for health endpoint |
|
0 commit comments