The Dockerized Workflow
To eliminate environment-related issues and ensure perfect reproducibility, the entire project is containerized.
gemma-trainer(Dockerfile): This is the primary container for training and inference. It packages the Python environment, CUDA, and all necessary libraries fromrequirements.txt. By mounting local directories as volumes, we can iterate on code locally and execute it within the consistent container environment.gguf-converter(Dockerfile.convert): The GGUF conversion process requires cmake and other build tools to compilellama.cpp. To avoid bloating our main training image, we isolate these dependencies in a separate, dedicated container. This separation of concerns is a best practice for maintaining lean and specialized environments.