dangerzone/install/windows/build-image.py
Alex Pyrgiotis 4668443be6
install: Use the full image tag
Use the full image tag (dangerzone.rocks/dangerzone:latest) when
building the image. Else, we risk creating a `share/image-id.txt` file
with multiple IDs in it, if we have another
`dangerzone.rocks/dangerzone` image (with a different tag) in our dev
environment.
2023-03-08 17:40:26 +02:00

57 lines
1.2 KiB
Python

import gzip
import os
import subprocess
def main():
print("Building container image")
subprocess.run(
[
"docker",
"build",
"container",
"--tag",
"dangerzone.rocks/dangerzone:latest",
]
)
print("Saving container image")
cmd = subprocess.Popen(
[
"docker",
"save",
"dangerzone.rocks/dangerzone:latest",
],
stdout=subprocess.PIPE,
)
print("Compressing container image")
chunk_size = 4 << 12
with gzip.open("share/container.tar.gz", "wb") as gzip_f:
while True:
chunk = cmd.stdout.read(chunk_size)
if len(chunk) > 0:
gzip_f.write(chunk)
else:
break
cmd.wait(5)
print("Looking up the image id")
image_id = subprocess.check_output(
[
"docker",
"image",
"list",
"--format",
"{{.ID}}",
"dangerzone.rocks/dangerzone:latest",
],
text=True,
)
with open("share/image-id.txt", "w") as f:
f.write(image_id)
if __name__ == "__main__":
main()