Skip to content

Commit 35b2a3c

Browse files
hippogrRui Gao
andauthored
enable imagelist argument for image build script (#95)
* enable imagelist argument for image build script to enable build single docker image instead of whole service * add default value for imagelist argument --------- Co-authored-by: Rui Gao <[email protected]>
1 parent 8d611a4 commit 35b2a3c

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

build/core/build_center.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,16 @@
2828

2929
class BuildCenter:
3030

31-
def __init__(self, build_config, process_list, type):
31+
def __init__(self, build_config, process_list, type, arg_config=None):
3232

3333
self.logger = logging.getLogger(__name__)
3434
build_utility.setup_logger_config(self.logger)
3535

3636
self.build_config = build_config
3737
self.task_type = type
3838

39+
self.arg_config = arg_config
40+
3941
self.process_list = [service.lower() for service in process_list] if process_list is not None else None
4042

4143
# Initialize docker_cli instance
@@ -138,7 +140,7 @@ def build_center(self):
138140
for inedge in self.graph.services[item].inedges:
139141
build_worker.copy_dependency_folder(os.path.join(self.codeDir,inedge),
140142
os.path.join(self.graph.services[item].path,self.dependencyDir+inedge))
141-
build_worker.build_single_component(self.graph.services[item])
143+
build_worker.build_single_component(self.graph.services[item], self.arg_config.imagelist)
142144
self.logger.info("Build all components succeed")
143145

144146
except Exception as e:

build/core/build_handler.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def __init__(self, docker_cli):
4040
self.dependencyDir = 'dependency'
4141

4242

43-
def build_single_component(self, service):
43+
def build_single_component(self, service, imagelist=None):
4444

4545
self.logger.info("Starts to build {0}".format(service.service_name))
4646

@@ -53,7 +53,8 @@ def build_single_component(self, service):
5353
for dockerfile_prefix in service.docker_files:
5454
image_name = os.path.splitext(dockerfile_prefix)[0]
5555
dockerfile = os.path.join(service.path, 'build/' + dockerfile_prefix + '.dockerfile')
56-
self.docker_cli.docker_image_build(image_name, dockerfile, service.path)
56+
if imagelist is None or image_name in imagelist:
57+
self.docker_cli.docker_image_build(image_name, dockerfile, service.path)
5758

5859
post_build = os.path.join(service.path, self.build_post)
5960
if os.path.exists(post_build):

build/pai_build.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def load_build_config(config_dir):
3939

4040

4141
def build_service(args, config_model):
42-
pai_build = build_center.BuildCenter(config_model, args.service, 'k8s')
42+
pai_build = build_center.BuildCenter(config_model, args.service, 'k8s', args)
4343
pai_build.set_build_cache_type(args.nocache)
4444
pai_build.build_center()
4545

@@ -98,6 +98,13 @@ def main():
9898
action='store_true',
9999
help="Build the service using cache or not"
100100
)
101+
build_parser.add_argument(
102+
'-i', '--imagelist',
103+
type=str,
104+
nargs='+',
105+
default=None,
106+
help="The image list you want to build"
107+
)
101108
build_parser.set_defaults(func=build_service)
102109

103110
# Push commands

0 commit comments

Comments
 (0)