You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.py 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #! /usr/bin/env python3
  2. import argparse
  3. import re
  4. import sys
  5. from subprocess import call
  6. def main():
  7. parser = argparse.ArgumentParser(description='Build postgresql in docker')
  8. parser.add_argument('--pg-version', dest='pg_version', default='9.6.3', help='Postgres version to build')
  9. 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.')
  10. args = parser.parse_args()
  11. pg_version = args.pg_version
  12. docker_tag = args.docker_tag
  13. if not re.match('^[0-9]+\.[0-9]+\.[0-9]+', pg_version):
  14. print("Bad version format. Should be major.minor.fix (eg: 9.6.3)")
  15. sys.exit(64)
  16. pg_version_ = pg_version.replace('.', '_')
  17. split = pg_version.split('.')
  18. pg_major = split[0] + '.' + split[1]
  19. docker_tag_full = '%s:%s' % (docker_tag, pg_version)
  20. print('Building postgres:\nPG_MAJOR=%s\nPG_VERSION=%s\nPG_VERSION_=%s\nDocker tag: %s' %
  21. (pg_major, pg_version, pg_version_, docker_tag_full))
  22. call(['docker', 'build',
  23. '-t', docker_tag_full,
  24. '--build-arg', 'PG_MAJOR=%s' % pg_major,
  25. '--build-arg', 'PG_VERSION=%s' % pg_version,
  26. '--build-arg', 'PG_VERSION_=%s' % pg_version_,
  27. '.'])
  28. if __name__ == '__main__':
  29. main()