Add feature to build multi-arch image (#27)

Since buildah now supports multi arch image
support (ref: https://github.com/containers/buildah/issues/1590)
This feature will allow building images for multiple
architectures.

Signed-off-by: divyansh42 <diagrawa@redhat.com>
This commit is contained in:
Divyanshu Agrawal 2021-02-17 23:57:20 +05:30 committed by GitHub
parent 21e07c3197
commit 803a1413e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 40 additions and 10 deletions

View file

@ -8,11 +8,12 @@ export interface BuildahConfigSettings {
envs?: string[];
port?: string;
workingdir?: string;
archs?: string;
}
interface Buildah {
buildUsingDocker(
image: string, context: string, dockerFiles: string[], buildArgs: string[], useOCI: boolean,
image: string, context: string, dockerFiles: string[], buildArgs: string[], useOCI: boolean, archs: string,
): Promise<CommandResult>;
from(baseImage: string): Promise<CommandResult>;
copy(container: string, contentToCopy: string[]): Promise<CommandResult | undefined>;
@ -32,9 +33,13 @@ export class BuildahCli implements Buildah {
}
async buildUsingDocker(
image: string, context: string, dockerFiles: string[], buildArgs: string[], useOCI: boolean,
image: string, context: string, dockerFiles: string[], buildArgs: string[], useOCI: boolean, archs: string
): Promise<CommandResult> {
const args: string[] = [ "bud" ];
if (archs) {
args.push("--arch");
args.push(archs);
}
dockerFiles.forEach((file) => {
args.push("-f");
args.push(file);
@ -90,6 +95,10 @@ export class BuildahCli implements Buildah {
args.push(env);
});
}
if (settings.archs) {
args.push("--arch");
args.push(settings.archs);
}
args.push(container);
return this.execute(args);
}