UPDATING IMAGE FILES
Methods, server computers, and computer programs are disclosed. An example method is disclosed that includes inputting, into an update module, a first version of a predefined modular image file and a delta encoded image file defining differences between the first version and a second, updated, version of the predefined modular image file, and outputting, from the update module, the second, updated, version of the predefined modular image file, where each version of the predefined modular image file includes at least one layer defining executable instructions and is one of a plurality of predefined modular image files that can be assembled as an executable image file for execution as a software container element.
1 . A computer-implemented method for outputting an updated version of a predefined modular image file, comprising:
inputting, into an update module, a first version of a predefined modular image file and a delta encoded image file defining differences between the first version and a second, updated, version of the predefined modular image file; and
outputting, from the update module, the second, updated, version of the predefined modular image file,
wherein each version of the predefined modular image file comprises at least one layer defining executable instructions and is one of a plurality of predefined modular image files that can be assembled as an executable image file for execution as a software container element.
2 . The method of claim 1 , further comprising:
receiving, at a proxy that is configured to communicate with a computing device and a container image registry located on a remote server, the delta encoded image file from the container image registry,
wherein the delta encoded image file is inputted into the update module responsive to receiving the delta encoded image file at the proxy.
3 . The method of claim 1 , further comprising:
transmitting the second, updated, predefined modular image file to a computing device for assembly as part of an executable image file,
wherein the computing device is a point of sale terminal or self-service terminal or kiosk.
4 . The method of claim 1 , further comprising:
receiving, from a computing device, a request for the second, updated, predefined modular image file.
5 . The method of claim 4 , further comprising:
receiving the request at a proxy that is configured to communicate with the computing device and a container image registry located on a remote server.
6 . The method as claimed in claim 5 , further comprising:
responsive to receiving the request, determining, by the proxy, a presence of the first version of the predefined modular image file in a cache memory of the proxy.
7 . The method of claim 1 , further comprising:
inputting the first version of the predefined modular image file and the second version of the predefined modular image file into a comparison module; and
outputting, by the comparison module, the delta encoded image file.
8 . The method of claim 1 , further comprising:
assembling, at a computing device, the executable image file comprising the second, updated, predefined modular image file and at least one further predefined modular image file of the plurality of predefined modular image files,
wherein the second, updated, predefined modular image file cannot be executed as the software container element without having been assembled with the at least one further predefined modular image file.
9 . The method as claimed in claim 8 , further comprising:
providing the second, updated, predefined modular image file as at least one peripheral device driver image file; and
providing the at least one further predefined modular image file as at least one base operating system image file and at least one software dependencies image file.
10 . The method of claim 9 , further comprising:
providing the at least one peripheral device driver image file as at least one of a scanner driver image file, a printer driver image file, a scale driver image file, or a laser scanner driver image file.
11 . The method of claim 9 , further comprising:
providing the software dependencies image file as an image file comprising at least one of a driver layer, a common layer, or a utilities layer.
12 . The method of claim 1 , further comprising:
responsive to executing the executable image file, providing the software container element as an element that contains executable software defined by the executable image file and that is executable on one or more processors of a computing device.
13 . The method of claim 1 , further comprising:
providing the update module as a module comprising executable instructions associated with a VCDIFF algorithm.
14 . A server computer comprising one or more processors configured to execute executable software, wherein the executable software, when executed by one or more processors, is configured to:
input, into an update module, a first version of a predefined modular image file and a delta encoded image file defining differences between the first version and a second, updated, version of the predefined modular image file; and
output, from the update module, the second, updated, version of the predefined modular image file,
wherein each version of the predefined modular image file comprises at least one layer defining executable instructions and is one of a plurality of predefined modular image files that can be assembled as an executable image file for execution as a software container element.
15 . A computer-implemented method for outputting a delta encoded image file, the method comprising:
providing a first version of a predefined modular image file;
providing a second, updated, version of the predefined modular image file;
inputting, into a comparison module, the first version and the second, updated, version of the predefined modular image file; and
outputting, by the comparison module, the delta encoded image file, wherein the delta encoded image file defines differences between the first version and the second, updated, version of the predefined modular image file, and
wherein each version of the predefined modular image file comprises at least one layer defining executable instructions and is one of a plurality of predefined modular image files that can be assembled as an executable image file for execution as a software container element.
16 . The method of claim 15 , further comprising:
storing at least one of the first version of the predefined modular image file, the second, updated, version of the predefined modular image file, or the delta encoded image file in a container image registry.
17 . The method of claim 15 , further comprising:
providing the delta encoded image file as a binary delta encoded image file.
18 . The method of claim 15 , further comprising:
Providing the comparison module as a module comprising executable instructions associated with a VCDIFF algorithm.
19 . The method of claim 15 , further comprising:
assembling, at a computing device, the executable image file comprising the second, updated, predefined modular image file and at least one further predefined modular image file of the plurality of predefined modular image files,
wherein the second, updated, predefined modular image file cannot be executed as the software container element without having been assembled with the at least one further predefined modular image file.
20 . The method of claim 15 , further comprising:
responsive to executing the executable image file, providing the software container element as an element that contains executable software defined by the executable image file and that is executable on one or more processors of a computing device.