Michael Chen
bbdd5ce586
Added build script to solution files Added address to configure client connection destination (if proxied) Added automatic semantic versioning build
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
#!python
|
|
import subprocess
|
|
import argparse
|
|
from itertools import chain
|
|
|
|
dockercmd = 'docker'
|
|
|
|
parser = argparse.ArgumentParser(description='Create custom recumock images.')
|
|
parser.add_argument('tags', metavar='TAG', nargs='+', help='Version tags to build.')
|
|
|
|
args = parser.parse_args()
|
|
|
|
platforms = ['linux/amd64', 'linux/arm64', 'linux/arm/v7']
|
|
|
|
def pull(image):
|
|
subprocess.run([dockercmd, 'pull', baseimage], check=True)
|
|
|
|
def build(images, directory, platforms, build_args = None):
|
|
if build_args is None:
|
|
build_args = []
|
|
build_args = list(chain.from_iterable(['--build-arg', f'{arg}={val}'] for (arg, val) in build_args))
|
|
tags = list(chain.from_iterable(['-t', image] for image in images))
|
|
platformlist = ','.join(platforms)
|
|
command = [dockercmd, 'buildx', 'build', '-f', 'MinecraftDiscordBot/Dockerfile', '--platform', platformlist, *tags] + build_args + ['--push', directory]
|
|
print(' '.join(command))
|
|
subprocess.run(command, check=True)
|
|
|
|
for version in args.tags:
|
|
parts = version.split('.')
|
|
tags = list('.'.join(parts[:i]) for i in range(1, len(parts) + 1))
|
|
tags.append('latest')
|
|
build([f'chenio/mcdiscordbot:{tag}' for tag in tags], '.', platforms)
|