From 12cb6f928792cb2f34fea06e62df1f8851d1f517 Mon Sep 17 00:00:00 2001 From: I515719 Date: Tue, 10 Feb 2026 15:59:44 +0800 Subject: [PATCH] chore(DM01-5818): Enable Docker BuildKit on Infrabox --- docs/job/docker.md | 4 ++-- docs/job/docker_compose.md | 4 ++-- src/job/job.py | 4 ++-- src/pyinfrabox/infrabox/__init__.py | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/job/docker.md b/docs/job/docker.md index 2936c122..8cbac94c 100644 --- a/docs/job/docker.md +++ b/docs/job/docker.md @@ -11,7 +11,7 @@ The job type docker is one of the most important jobs. You can use it to run any "command": ["echo", "hello world"], "resources": { "limits": { "cpu": 1, "memory": 1024 } }, "build_only": false, - "enable_docker_build_kit": true, + "enable_docker_buildkit": true, "build_context": "...", "cache": { ... }, "timeout": 3600, @@ -35,7 +35,7 @@ The job type docker is one of the most important jobs. You can use it to run any |command|false|string||The command in [exec form](https://docs.docker.com/engine/reference/builder/#cmd) to be used when the container is run. Ignored if `build_only=true`| |resources|true|[Resource Configuration](/docs/job/resources.md)||Specify the required resources for your job.| |build_only|true|boolean|true|If set to true the container will only be build but not run. Use it if you only want to build a container and push it to a registry. See here for how to push to a docker registry.| -|enable_docker_build_kit|false|boolean|false|If set to true, InfraBox will try to use the Dokcer Buildkit to build the containers. For more details, please refer to [Docker docs](https://docs.docker.com/develop/develop-images/build_enhancements/)| +|enable_docker_buildkit|false|boolean|false|If set to true, InfraBox will try to use the Dokcer Buildkit to build the containers. For more details, please refer to [Docker docs](https://docs.docker.com/develop/develop-images/build_enhancements/)| |build_context|false|string||Specify the docker build context. If not set the directory containing the `infrabox.json` file will be used.| |cache|false|[Cache Configuration](/docs/job/cache.md)|{}|Configure the caching behavior| |timeout|false|integer|3600|Timeout in seconds after which the job should be killed. Timeout starts when the job is set to running| diff --git a/docs/job/docker_compose.md b/docs/job/docker_compose.md index b5475fe0..0ff28cfb 100644 --- a/docs/job/docker_compose.md +++ b/docs/job/docker_compose.md @@ -7,7 +7,7 @@ Sometimes you want to start multiple containers to test your application. For th "jobs": [{ "type": "docker-compose", "name": "test", - "enable_docker_build_kit": true, + "enable_docker_buildkit": true, "docker_compose_file": "infrabox/test/docker-compose.yml", "resources": { "limits": { "cpu": 1, "memory": 1024 } }, "cache": { ... }, @@ -22,7 +22,7 @@ Sometimes you want to start multiple containers to test your application. For th |------|----------|------|---------|-------------| |type|true|string||Has to be "docker-compose" to run multiple containers| |name|true|string||Name of the job| -|enable_docker_build_kit|false|boolean|false|If set to true, InfraBox will try to use the Dokcer Buildkit to build the containers. For more details, please refer to [Docker docs](https://docs.docker.com/compose/reference/build/)| +|enable_docker_buildkit|false|boolean|false|If set to true, InfraBox will try to use the Dokcer Buildkit to build the containers. For more details, please refer to [Docker docs](https://docs.docker.com/compose/reference/build/)| |docker_compose_file|true|string||Path to the `docker-compose.yml`| |resources|true|[Resource Configuration](/docs/job/resources.md)||Specify the required resources for your job| |cache|false|[Cache Configuration](/docs/job/cache.md)|{}|Configure the caching behavior| diff --git a/src/job/job.py b/src/job/job.py index e0b1b8ae..5b7bb1b9 100755 --- a/src/job/job.py +++ b/src/job/job.py @@ -739,7 +739,7 @@ def run_job_docker_compose(self, c): self.environment['PATH'] = os.environ['PATH'] self.environment['DOCKER_BUILDKIT'] = '0' self.environment['COMPOSE_DOCKER_CLI_BUILD'] = '0' - if self.job['definition'].get('enable_docker_build_kit', False) is True: + if self.job['definition'].get('enable_docker_buildkit', False) is True: c.collect('BUILDKIT is enabled during build!', show=True) self.environment['DOCKER_BUILDKIT'] = '1' self.environment['COMPOSE_DOCKER_CLI_BUILD']= '1' @@ -1001,7 +1001,7 @@ def build_docker_image(self, image_name, cache_image, target=None): cwd = self._get_build_context_current_job() - if self.job['definition'].get('enable_docker_build_kit', False) is True: + if self.job['definition'].get('enable_docker_buildkit', False) is True: os.environ['DOCKER_BUILDKIT'] = '1' c.execute_mask(cmd, cwd=cwd, show=True, mask=self.repository.get('github_api_token', None)) diff --git a/src/pyinfrabox/infrabox/__init__.py b/src/pyinfrabox/infrabox/__init__.py index 56b49671..20d75b3a 100644 --- a/src/pyinfrabox/infrabox/__init__.py +++ b/src/pyinfrabox/infrabox/__init__.py @@ -292,7 +292,7 @@ def parse_docker_image(d, path): def parse_docker(d, path): check_allowed_properties(d, path, ("type", "name", "docker_file", "depends_on", "resources", - "build_only", "environment", "target", "enable_docker_build_kit", + "build_only", "environment", "target", "enable_docker_buildkit", "build_arguments", "deployments", "timeout", "security_context", "command", "build_context", "cache", "repository", "cluster", "services", "registries")) check_required_properties(d, path, ("type", "name", "docker_file", "resources")) @@ -312,8 +312,8 @@ def parse_docker(d, path): if 'build_only' in d: check_boolean(d['build_only'], path + ".build_only") - if 'enable_docker_build_kit' in d: - check_boolean(d['enable_docker_build_kit'], path + ".enable_docker_build_kit" ) + if 'enable_docker_buildkit' in d: + check_boolean(d['enable_docker_buildkit'], path + ".enable_docker_buildkit" ) if 'cache' in d: parse_cache(d['cache'], path + ".cache") @@ -347,7 +347,7 @@ def parse_docker(d, path): def parse_docker_compose(d, path): - check_allowed_properties(d, path, ("type", "name", "docker_compose_file", "depends_on", "stop_timeout", "enable_docker_build_kit", + check_allowed_properties(d, path, ("type", "name", "docker_compose_file", "depends_on", "stop_timeout", "enable_docker_buildkit", "compose_profiles", "environment", "resources", "cache", "timeout", "cluster", "repository", "registries", "parallel_build")) check_required_properties(d, path, ("type", "name", "docker_compose_file", "resources")) @@ -378,8 +378,8 @@ def parse_docker_compose(d, path): if 'registries' in d: parse_registries(d['registries'], path + '.registries') - if 'enable_docker_build_kit' in d: - check_boolean(d['enable_docker_build_kit'], path + ".enable_docker_build_kit" ) + if 'enable_docker_buildkit' in d: + check_boolean(d['enable_docker_buildkit'], path + ".enable_docker_buildkit" ) def parse_wait(d, path):