diff --git a/compose.yaml b/compose.yaml index eabd04b..0905023 100644 --- a/compose.yaml +++ b/compose.yaml @@ -370,11 +370,21 @@ services: restart: unless-stopped shm_size: 4mb + custom_python: + image: gitlab.prodcontest.ru:5050/team-15/project/custom_python:latest + entrypoint: [""] + command: echo "Image pulled." + checker: image: gitlab.prodcontest.ru:5050/team-15/project/checker:latest build: context: ./services/checker dockerfile: Dockerfile + depends_on: + custom_python: + restart: false + condition: service_completed_successfully + required: true env_file: - path: ./infrastructure/checker/.env.template required: true diff --git a/services/checker/.env.template b/services/checker/.env.template index 8bea4d3..9dac72a 100644 --- a/services/checker/.env.template +++ b/services/checker/.env.template @@ -1,10 +1,4 @@ # Change all vars before going to production and remove all comments (!) # Below all environment variables and default values -REGISTRY_USERNAME= - -REGISTRY_PASSWORD= - -REGISTRY_URL=gitlab.prodcontest.ru:5050 - DOCKER_IMAGE=gitlab.prodcontest.ru:5050/team-15/project/custom-python diff --git a/services/checker/config.py b/services/checker/config.py index 7c49c2f..5f88007 100644 --- a/services/checker/config.py +++ b/services/checker/config.py @@ -7,12 +7,6 @@ BASE_DIR = Path(__file__).resolve().parent load_dotenv(BASE_DIR / ".env") -REGISTRY_LOGIN = os.getenv("REGISTRY_USERNAME", None) - -REGISTRY_PASSWORD = os.getenv("REGISTRY_USERNAME", None) - -REGISTRY_URL = os.getenv("REGISTRY_URL", "gitlab.prodcontest.ru:5050") - DOCKER_IMAGE = os.getenv( "DOCKER_IMAGE", default="gitlab.prodcontest.ru:5050/team-15/project/custom-python" ) diff --git a/services/checker/main.py b/services/checker/main.py index 137d6a1..9e370b1 100644 --- a/services/checker/main.py +++ b/services/checker/main.py @@ -21,27 +21,10 @@ ALLOWED_FILENAME_CHARS = r"[^a-zA-Z0-9_\-.]" app = FastAPI() docker_client = docker.from_env() -print(docker_client.login( - username=config.REGISTRY_LOGIN, - password=config.REGISTRY_PASSWORD, - registry=config.REGISTRY_URL, -)) -print(config.REGISTRY_LOGIN, config.REGISTRY_PASSWORD) logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) -@app.on_event("startup") -async def pull_docker_image(): - client = docker.from_env() - image_name = config.DOCKER_IMAGE - try: - client.images.pull(image_name) - print(f"Successfully pulled {image_name}") - except docker.errors.DockerException as e: - print(f"Error pulling {image_name}: {e}") - - class FileDetails(BaseModel): url: HttpUrl = Field( ..., description="URL to download the file from (supports HTTP/HTTPS)"