Skip to content

Commit cd1a7d0

Browse files
committed
feat: Update Docker image configuration for execution environment
- Changed the Docker image tag in `docker-compose.ghcr.yml` from `latest` to `dev` for development purposes. - Enhanced the `Settings` class to include a new field for `docker_image_tag`, allowing dynamic specification of image tags. - Modified the `get_image_for_language` function in `languages.py` to accept a tag parameter, improving flexibility in image retrieval.
1 parent dfcfdee commit cd1a7d0

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

docker-compose.ghcr.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
services:
22
# Code Interpreter API
33
api:
4-
image: ghcr.io/usnavy13/librecodeinterpreter:latest
4+
image: ghcr.io/usnavy13/librecodeinterpreter:dev
55
container_name: code-interpreter-api
66
user: "1000:988" # Run as user with docker group access
77
cap_add:
@@ -16,6 +16,7 @@ services:
1616
- API_HOST=0.0.0.0
1717
- API_PORT=8000
1818
- DOCKER_IMAGE_REGISTRY=ghcr.io/usnavy13/librecodeinterpreter
19+
- DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG:-latest}
1920

2021
# Service discovery (container names)
2122
- REDIS_HOST=redis

src/config/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ class Settings(BaseSettings):
115115
default="code-interpreter",
116116
description="Registry/namespace prefix for execution environment images",
117117
)
118+
docker_image_tag: str = Field(
119+
default="latest",
120+
description="Tag for execution environment images (e.g. 'latest', 'dev')",
121+
)
118122
docker_timeout: int = Field(default=60, ge=10)
119123
docker_network_mode: str = Field(default="none")
120124
docker_security_opt: List[str] = Field(
@@ -599,7 +603,7 @@ def get_image_for_language(self, code: str) -> str:
599603

600604
# Fallback to languages.py logic if not in settings
601605
from .languages import get_image_for_language as get_img
602-
return get_img(code, registry=self.docker_image_registry)
606+
return get_img(code, registry=self.docker_image_registry, tag=self.docker_image_tag)
603607

604608
def get_execution_timeout(self, language: str) -> int:
605609
"""Get execution timeout for a specific language."""

src/config/languages.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,15 @@ def is_supported_language(code: str) -> bool:
183183

184184

185185
# Convenience lookups for backward compatibility during transition
186-
def get_image_for_language(code: str, registry: Optional[str] = None) -> str:
186+
def get_image_for_language(code: str, registry: Optional[str] = None, tag: str = "latest") -> str:
187187
"""Get Docker image for a language."""
188188
lang = get_language(code)
189189
if lang:
190-
return f"{registry}/{lang.image}" if registry else lang.image
190+
# Extract base image name without the default :latest tag
191+
base_image = lang.image.rsplit(":", 1)[0]
192+
if registry:
193+
return f"{registry}/{base_image}:{tag}"
194+
return f"{base_image}:{tag}"
191195
raise ValueError(f"Unsupported language: {code}")
192196

193197

0 commit comments

Comments
 (0)