mirror of
https://github.com/azaion/detections.git
synced 2026-06-21 05:41:07 +00:00
Compare commits
6 Commits
dev
...
1dff909e74
| Author | SHA1 | Date | |
|---|---|---|---|
| 1dff909e74 | |||
| 70b52c27b1 | |||
| 5be8e05d9c | |||
| cc691657a8 | |||
| 8934314b1b | |||
| 5f0a8a5dfe |
+3
-1
@@ -15,4 +15,6 @@ __pycache__
|
||||
.pytest_cache
|
||||
.git
|
||||
*.md
|
||||
scripts
|
||||
scripts/*
|
||||
!scripts/jetson/
|
||||
!scripts/jetson/generate_int8_cache.py
|
||||
|
||||
@@ -36,15 +36,25 @@ steps:
|
||||
from_secret: registry_token
|
||||
commands:
|
||||
- echo "$REGISTRY_TOKEN" | docker login "$REGISTRY_HOST" -u "$REGISTRY_USER" --password-stdin
|
||||
- export TAG=${CI_COMMIT_BRANCH}-${TAG_SUFFIX}
|
||||
- export BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
- |
|
||||
RAW_BRANCH="$CI_COMMIT_BRANCH"
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="$WOODPECKER_COMMIT_BRANCH"; fi
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="$CI_COMMIT_REF"; fi
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="$WOODPECKER_COMMIT_REF"; fi
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="manual"; fi
|
||||
SAFE_BRANCH=$(printf '%s' "$RAW_BRANCH" | sed 's#^refs/heads/##; s#^refs/tags/##; s#[^A-Za-z0-9_.-]#-#g; s#^-*##; s#-*$##')
|
||||
if [ -z "$SAFE_BRANCH" ]; then SAFE_BRANCH="manual"; fi
|
||||
TAG="$SAFE_BRANCH-$TAG_SUFFIX"
|
||||
BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
echo "RAW_BRANCH=$RAW_BRANCH"
|
||||
echo "SAFE_BRANCH=$SAFE_BRANCH"
|
||||
echo "TAG=$TAG"
|
||||
docker build -f ${DOCKERFILE} \
|
||||
--build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA \
|
||||
--label org.opencontainers.image.revision=$CI_COMMIT_SHA \
|
||||
--label org.opencontainers.image.created=$BUILD_DATE \
|
||||
--label org.opencontainers.image.source=$CI_REPO_URL \
|
||||
-t $REGISTRY_HOST/azaion/detections:$TAG .
|
||||
- docker push $REGISTRY_HOST/azaion/detections:$TAG
|
||||
docker push $REGISTRY_HOST/azaion/detections:$TAG
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
when:
|
||||
- event: [manual]
|
||||
evaluate: 'BUILD_JETSON_TRT104 == "1"'
|
||||
|
||||
labels:
|
||||
platform: arm64
|
||||
|
||||
steps:
|
||||
- name: build-push-jetson-trt104
|
||||
image: docker
|
||||
environment:
|
||||
REGISTRY_HOST:
|
||||
from_secret: registry_host
|
||||
REGISTRY_USER:
|
||||
from_secret: registry_user
|
||||
REGISTRY_TOKEN:
|
||||
from_secret: registry_token
|
||||
commands:
|
||||
- echo "$REGISTRY_TOKEN" | docker login "$REGISTRY_HOST" -u "$REGISTRY_USER" --password-stdin
|
||||
- |
|
||||
RAW_BRANCH="$CI_COMMIT_BRANCH"
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="$WOODPECKER_COMMIT_BRANCH"; fi
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="$CI_COMMIT_REF"; fi
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="$WOODPECKER_COMMIT_REF"; fi
|
||||
if [ -z "$RAW_BRANCH" ]; then RAW_BRANCH="manual"; fi
|
||||
SAFE_BRANCH=$(printf '%s' "$RAW_BRANCH" | sed 's#^refs/heads/##; s#^refs/tags/##; s#[^A-Za-z0-9_.-]#-#g; s#^-*##; s#-*$##')
|
||||
if [ -z "$SAFE_BRANCH" ]; then SAFE_BRANCH="manual"; fi
|
||||
TAG="$SAFE_BRANCH-arm-trt104"
|
||||
BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
echo "RAW_BRANCH=$RAW_BRANCH"
|
||||
echo "SAFE_BRANCH=$SAFE_BRANCH"
|
||||
echo "TAG=$TAG"
|
||||
docker build -f Dockerfile.jetson.trt104 \
|
||||
--build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA \
|
||||
--label org.opencontainers.image.revision=$CI_COMMIT_SHA \
|
||||
--label org.opencontainers.image.created=$BUILD_DATE \
|
||||
--label org.opencontainers.image.source=$CI_REPO_URL \
|
||||
-t $REGISTRY_HOST/azaion/detections:$TAG .
|
||||
docker push $REGISTRY_HOST/azaion/detections:$TAG
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
@@ -0,0 +1,21 @@
|
||||
FROM nvcr.io/nvidia/tensorrt:24.09-py3-igpu
|
||||
ARG CI_COMMIT_SHA=unknown
|
||||
ENV AZAION_REVISION=$CI_COMMIT_SHA
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
python3 python3-pip python3-dev gcc \
|
||||
libgl1 libglib2.0-0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
COPY requirements.txt requirements-jetson.txt ./
|
||||
RUN pip3 install --no-cache-dir -r requirements-jetson.txt
|
||||
COPY . .
|
||||
RUN BUILD_TENSORRT_EXTENSIONS=1 python3 setup.py build_ext --inplace
|
||||
ENV PYTHONPATH=/app/src
|
||||
RUN adduser --disabled-password --no-create-home --gecos "" appuser \
|
||||
&& mkdir -p /app/Logs \
|
||||
&& chown -R appuser /app
|
||||
USER appuser
|
||||
EXPOSE 8080
|
||||
CMD ["python3", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
|
||||
@@ -139,6 +139,21 @@ Already exists: `e2e/docker-compose.test.yml`. No changes needed — supports bo
|
||||
docker compose -f docker-compose.jetson.yml up
|
||||
```
|
||||
|
||||
### detections-jetson-trt104 (Dockerfile.jetson.trt104)
|
||||
|
||||
Experimental INT8 calibration image for Jetson Orin devices. It uses NVIDIA's TensorRT iGPU container:
|
||||
|
||||
| Aspect | Specification |
|
||||
|--------|--------------|
|
||||
| Base image | `nvcr.io/nvidia/tensorrt:24.09-py3-igpu` |
|
||||
| TensorRT | TensorRT 10.4.0.26 |
|
||||
| Purpose | Work around TensorRT 10.3 INT8 calibration failures such as `checkSanity.cpp::checkLinks` / `Graph::regions` internal errors |
|
||||
|
||||
Build/tag example:
|
||||
```bash
|
||||
docker build -f Dockerfile.jetson.trt104 -t <registry>/azaion/detections:dev-arm-trt104 .
|
||||
```
|
||||
|
||||
## Image Tagging Strategy
|
||||
|
||||
| Context | Tag Format | Example |
|
||||
|
||||
@@ -5,7 +5,9 @@ COMPOSE="${COMPOSE:-docker compose -f docker-compose.test.yml --profile jetson}"
|
||||
REGISTRY_HOST="${REGISTRY_HOST:?REGISTRY_HOST is required}"
|
||||
ENGINE_REPOSITORY="${JETSON_ENGINE_REPOSITORY:-$REGISTRY_HOST/azaion/detections-jetson-engine}"
|
||||
BRANCH="${CI_COMMIT_BRANCH:-local}"
|
||||
ENGINE_TAG="${JETSON_ENGINE_TAG:-$(printf '%s' "$BRANCH" | tr -c 'A-Za-z0-9_.-' '-')}"
|
||||
default_tag="$(printf '%s' "$BRANCH" | sed 's#^refs/heads/##; s#^refs/tags/##; s#[^A-Za-z0-9_.-]#-#g; s#^-*##; s#-*$##')"
|
||||
default_tag="${default_tag:-local}"
|
||||
ENGINE_TAG="${JETSON_ENGINE_TAG:-$default_tag}"
|
||||
OUT_DIR="${JETSON_ENGINE_OUT_DIR:-results/jetson-engine}"
|
||||
|
||||
mkdir -p "$OUT_DIR/models"
|
||||
|
||||
@@ -8,7 +8,9 @@ fi
|
||||
|
||||
ENGINE_REPOSITORY="${JETSON_ENGINE_REPOSITORY:-$REGISTRY_HOST/azaion/detections-jetson-engine}"
|
||||
BRANCH="${CI_COMMIT_BRANCH:-local}"
|
||||
ENGINE_TAG="${JETSON_ENGINE_TAG:-$(printf '%s' "$BRANCH" | tr -c 'A-Za-z0-9_.-' '-')}"
|
||||
default_tag="$(printf '%s' "$BRANCH" | sed 's#^refs/heads/##; s#^refs/tags/##; s#[^A-Za-z0-9_.-]#-#g; s#^-*##; s#-*$##')"
|
||||
default_tag="${default_tag:-local}"
|
||||
ENGINE_TAG="${JETSON_ENGINE_TAG:-$default_tag}"
|
||||
TARGET_DIR="${JETSON_ENGINE_TARGET_DIR:-fixtures/models}"
|
||||
image="$ENGINE_REPOSITORY:$ENGINE_TAG"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user