1234567891011121314151617181920212223242526272829303132333435363738 |
- #! /usr/bin/env python3
-
- import argparse
- import re
- import sys
- from subprocess import call
-
- def main():
- parser = argparse.ArgumentParser(description='Build postgresql in docker')
- parser.add_argument('--pg-version', dest='pg_version', default='9.6.3', help='Postgres version to build')
- parser.add_argument('--docker-tag', dest='docker_tag', default='postgres-custom', help='Docker tag to apply to the image. The version will be automatically added.')
-
- args = parser.parse_args()
-
- pg_version = args.pg_version
- docker_tag = args.docker_tag
-
- if not re.match('^[0-9]+\.[0-9]+\.[0-9]+', pg_version):
- print("Bad version format. Should be major.minor.fix (eg: 9.6.3)")
- sys.exit(64)
-
- pg_version_ = pg_version.replace('.', '_')
- split = pg_version.split('.')
- pg_major = split[0] + '.' + split[1]
- docker_tag_full = '%s:%s' % (docker_tag, pg_version)
-
- print('Building postgres:\nPG_MAJOR=%s\nPG_VERSION=%s\nPG_VERSION_=%s\nDocker tag: %s' %
- (pg_major, pg_version, pg_version_, docker_tag_full))
-
- call(['docker', 'build',
- '-t', docker_tag_full,
- '--build-arg', 'PG_MAJOR=%s' % pg_major,
- '--build-arg', 'PG_VERSION=%s' % pg_version,
- '--build-arg', 'PG_VERSION_=%s' % pg_version_,
- '.'])
-
- if __name__ == '__main__':
- main()
|