Repository navigation
fix(infra): training image ENTRYPOINT; document build-branch and pref… - #31
Merged
Merged
Conversation
…ix traps Smoke test sunucuda uc engele takildi, ucu de burada kapatiliyor. 1. CMD -> ENTRYPOINT. Kubernetes'te manifest'e yazilan `args` CMD'nin YERINE gecer; pod "exec: training.epochs=1: executable file not found" ile StartError'a dusuyordu. ENTRYPOINT'te args komutun sonuna eklenir, yani Hydra override'lari amaclandigi gibi calisir. Ornek manifest'e de "command yazma" notu eklendi. 2. Build daldan yanlis alinabiliyor. `git checkout origin/main` (dosya listesi olmadan) tum agaci main'e ceviriyor ve imaj sessizce main'in services/ml'iyle olusuyor; ilk kosu "No module named services.ml.training.train" ile duser. Runbook'a checkout dogrulamasi eklendi. 3. MinIO prefix'i dogrulandi: gercek yol datasets bucket + training-512/v1. conf/data/default.yaml prefix'i "datasets/training-512/v1" diyor, yani boto3 datasets/datasets/... arar. Kalici duzeltme ML squad'da; o gelene kadar kosulara data.minio_prefix override'i eklenmeli. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix(infra): training image ENTRYPOINT; document build-branch and prefix traps
Follow-up to #30. The first smoke test on the server hit three blockers; all
three are closed here.
1.
CMD→ENTRYPOINTKubernetes
argsreplace a container'sCMD, but are appended to itsENTRYPOINT. With the training command inCMD, a Job that passes only Hydraoverrides as
argsmade the runtime try to execute the override itself:StartError: exec: "training.epochs=1": executable file not found in $PATH
Moving the command to
ENTRYPOINTmakesargsbehave as intended. The examplemanifest now carries an explicit "do not set
command" note, since setting itwould override the entrypoint and silently drop every Hydra override.
2. Build can silently use the wrong branch
The training code lives on
ml/featurewhile the Dockerfile lives onmain,so the build overlays three files from
mainonto anml/featurecheckout.If the file list is dropped from that second checkout,
git checkout origin/mainswitches the entire tree tomain— the build then succeedsagainst
main'sservices/ml, and the failure only surfaces at run time:No module named services.ml.training.train
This is easy to miss because
requirements/ml.txtlooks correct either way(#30 added the missing packages to
main). The runbook now includes apre-build verification step that checks for files which only exist on
ml/feature.3. MinIO prefix mismatch — confirmed
services/ml/conf/data/default.yamlsetsbucket_name: datasetsandminio_prefix: datasets/training-512/v1. The actual layout on the server:$ mc ls dh/datasets/training-512/v1/
clean/ degraded/
So the prefix should be
training-512/v1; as configured, boto3 looks fordatasets/datasets/training-512/v1and finds nothing. The permanent fixbelongs to the ML squad — until then, runs need
data.minio_prefix=training-512/v1as an override, which the runbook nowdocuments.
Testing
Image builds clean and the dependency verification step passes
(
torch 2.6.0+cu124 | cuda 12.4 | numpy 2.2.2). The container starts andimports resolve inside the cluster. End-to-end training smoke test is running
against the rebuilt image; results to follow.