zulip/tools/ci/generate-dockerfiles
Gaurav Pandey 4ca87d785b ci: Create Zulip server pre-installed docker image template.
These Docker images will be useful for testing the upgrade process
from previous Zulip major releases to master.

Fixes part of #18346.
2021-06-18 13:02:37 -07:00

44 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import yaml
if __name__ == "__main__":
os.chdir(os.path.abspath(os.path.dirname(__file__)))
with open("Dockerfile.template") as f:
docker_template = f.read()
with open("Dockerfile.prod.template") as p:
docker_prod_template = p.read()
with open("images.yml") as f:
dockerfile_settings = yaml.safe_load(f)
for distro in dockerfile_settings["distros"]:
dockerfile_path = f"images/{distro}/Dockerfile"
os.makedirs(os.path.dirname(dockerfile_path), exist_ok=True)
with open(dockerfile_path, "w") as f:
f.write(
"""\
# THIS IS A GENERATED FILE. DO NOT EDIT.
# See template: tools/ci/Dockerfile.template
"""
)
f.write(docker_template.format_map(dockerfile_settings["distros"][distro]))
for server in dockerfile_settings["servers"]:
dockerfile_path = f"images/{server}/Dockerfile"
os.makedirs(os.path.dirname(dockerfile_path), exist_ok=True)
with open(dockerfile_path, "w") as f:
f.write(
"""\
# THIS IS A GENERATED FILE. DO NOT EDIT.
# See template: tools/ci/Dockerfile.prod.template
"""
)
f.write(docker_prod_template.format_map(dockerfile_settings["servers"][server]))