Copy YOLO training wrapper into all-in-one image
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-07-09 03:21:42 +02:00
parent 797161d760
commit afd2cba7c8
4 changed files with 7 additions and 0 deletions
+1
View File
@@ -1418,3 +1418,4 @@ Added:
- Fixed the all-in-one Dockerfile so documented operator scripts are copied into `/app/scripts/`, then prepared and audited the new Tower `yolo-building-tile-uniquehardneg160` dataset as the next training candidate. - Fixed the all-in-one Dockerfile so documented operator scripts are copied into `/app/scripts/`, then prepared and audited the new Tower `yolo-building-tile-uniquehardneg160` dataset as the next training candidate.
- Fixed the YOLO preflight CLI so it respects environment-provided runtime configuration instead of reporting `not_configured` unless CLI flags were supplied. - Fixed the YOLO preflight CLI so it respects environment-provided runtime configuration instead of reporting `not_configured` unless CLI flags were supplied.
- Rebuilt the Tower all-in-one image with AI dependencies and verified live migration smoke, browser runtime and YOLO preflight readiness against an existing raster tile manifest. - Rebuilt the Tower all-in-one image with AI dependencies and verified live migration smoke, browser runtime and YOLO preflight readiness against an existing raster tile manifest.
- Fixed the all-in-one Dockerfile so the operator YOLO training wrapper is available and executable inside `/app/scripts`.
@@ -61,6 +61,7 @@ def test_all_in_one_dockerfile_copies_operator_scripts_for_runtime_use() -> None
assert "COPY scripts/prepare_operator_real_data_samples.py /app/scripts/prepare_operator_real_data_samples.py" in dockerfile assert "COPY scripts/prepare_operator_real_data_samples.py /app/scripts/prepare_operator_real_data_samples.py" in dockerfile
assert "COPY scripts/export_operator_yolo_tile_dataset.py /app/scripts/export_operator_yolo_tile_dataset.py" in dockerfile assert "COPY scripts/export_operator_yolo_tile_dataset.py /app/scripts/export_operator_yolo_tile_dataset.py" in dockerfile
assert "COPY scripts/audit_operator_yolo_dataset_quality.py /app/scripts/audit_operator_yolo_dataset_quality.py" in dockerfile assert "COPY scripts/audit_operator_yolo_dataset_quality.py /app/scripts/audit_operator_yolo_dataset_quality.py" in dockerfile
assert "COPY scripts/train_operator_yolo_detector.sh /app/scripts/train_operator_yolo_detector.sh" in dockerfile
def test_compose_does_not_require_missing_root_env_file() -> None: def test_compose_does_not_require_missing_root_env_file() -> None:
+2
View File
@@ -49,6 +49,7 @@ COPY fixtures/ /app/fixtures/
COPY scripts/prepare_operator_real_data_samples.py /app/scripts/prepare_operator_real_data_samples.py COPY scripts/prepare_operator_real_data_samples.py /app/scripts/prepare_operator_real_data_samples.py
COPY scripts/export_operator_yolo_tile_dataset.py /app/scripts/export_operator_yolo_tile_dataset.py COPY scripts/export_operator_yolo_tile_dataset.py /app/scripts/export_operator_yolo_tile_dataset.py
COPY scripts/audit_operator_yolo_dataset_quality.py /app/scripts/audit_operator_yolo_dataset_quality.py COPY scripts/audit_operator_yolo_dataset_quality.py /app/scripts/audit_operator_yolo_dataset_quality.py
COPY scripts/train_operator_yolo_detector.sh /app/scripts/train_operator_yolo_detector.sh
COPY deploy/unraid/nginx-all-in-one.conf /etc/nginx/conf.d/default.conf COPY deploy/unraid/nginx-all-in-one.conf /etc/nginx/conf.d/default.conf
COPY deploy/unraid/all-in-one-start.sh /usr/local/bin/geointel-all-in-one-start COPY deploy/unraid/all-in-one-start.sh /usr/local/bin/geointel-all-in-one-start
COPY --from=frontend-build /frontend/dist/ /usr/share/nginx/html/ COPY --from=frontend-build /frontend/dist/ /usr/share/nginx/html/
@@ -61,6 +62,7 @@ RUN /usr/bin/python3.11 -m venv /opt/geointel/venv \
&& python scripts/gis_import_smoke.py \ && python scripts/gis_import_smoke.py \
&& python scripts/yolo_preflight.py --json >/tmp/geointel-yolo-preflight.json \ && python scripts/yolo_preflight.py --json >/tmp/geointel-yolo-preflight.json \
&& chmod +x /usr/local/bin/geointel-all-in-one-start \ && chmod +x /usr/local/bin/geointel-all-in-one-start \
&& chmod +x /app/scripts/train_operator_yolo_detector.sh \
&& rm -f /etc/nginx/sites-enabled/default \ && rm -f /etc/nginx/sites-enabled/default \
&& mkdir -p /app/storage /run/nginx /var/log/nginx && mkdir -p /app/storage /run/nginx /var/log/nginx
+3
View File
@@ -5680,6 +5680,7 @@ Open:
- Added sample-registry test coverage for minimum unique background count, unique centers and regional spread. - Added sample-registry test coverage for minimum unique background count, unique centers and regional spread.
- Updated operator documentation with the expanded default corpus and the next required Tower regeneration step. - Updated operator documentation with the expanded default corpus and the next required Tower regeneration step.
- Fixed the all-in-one Dockerfile so the documented operator scripts are copied into `/app/scripts/` during normal rebuilds. - Fixed the all-in-one Dockerfile so the documented operator scripts are copied into `/app/scripts/` during normal rebuilds.
- Fixed the all-in-one Dockerfile training-runtime gap so `/app/scripts/train_operator_yolo_detector.sh` is also copied into the rebuilt container and marked executable.
- Fixed `scripts/yolo_preflight.py` so it respects `YOLO_ENABLED`, `YOLO_MODEL_PATH` and `YOLO_MAX_TILES` from the runtime environment unless explicit CLI overrides are supplied. - Fixed `scripts/yolo_preflight.py` so it respects `YOLO_ENABLED`, `YOLO_MODEL_PATH` and `YOLO_MAX_TILES` from the runtime environment unless explicit CLI overrides are supplied.
- Prepared the expanded Tower operator manifest and exported `yolo-building-tile-uniquehardneg160`. - Prepared the expanded Tower operator manifest and exported `yolo-building-tile-uniquehardneg160`.
@@ -5688,6 +5689,8 @@ Open:
- `python -m pytest backend\tests\test_sprint131_operator_sample_expansion.py -q` - `python -m pytest backend\tests\test_sprint131_operator_sample_expansion.py -q`
- `python -m pytest backend\tests\test_sprint127_operator_sample_quality_matrix.py backend\tests\test_sprint131_operator_sample_expansion.py -q` - `python -m pytest backend\tests\test_sprint127_operator_sample_quality_matrix.py backend\tests\test_sprint131_operator_sample_expansion.py -q`
- `python -m pytest backend\tests\test_sprint13_yolo_preflight.py -q` - `python -m pytest backend\tests\test_sprint13_yolo_preflight.py -q`
- Red/green Docker runtime guard for the training wrapper: `python -m pytest backend\tests\test_docker_runtime_config.py::test_all_in_one_dockerfile_copies_operator_scripts_for_runtime_use -q`
- `python -m pytest backend\tests\test_docker_runtime_config.py -q`
- `bash scripts/run_readiness_check.sh` - `bash scripts/run_readiness_check.sh`
- Tower live operator sample prep: - Tower live operator sample prep:
- manifest samples: 16 total, 7 reference and 9 background candidates. - manifest samples: 16 total, 7 reference and 9 background candidates.