<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?action=history&amp;feed=atom&amp;title=Quickly_patch_a_docker_image</id>
	<title>Quickly patch a docker image - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?action=history&amp;feed=atom&amp;title=Quickly_patch_a_docker_image"/>
	<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Quickly_patch_a_docker_image&amp;action=history"/>
	<updated>2026-05-04T19:17:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Quickly_patch_a_docker_image&amp;diff=32675&amp;oldid=prev</id>
		<title>Antony: fix C&amp;P parts from first run :)</title>
		<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Quickly_patch_a_docker_image&amp;diff=32675&amp;oldid=prev"/>
		<updated>2022-09-13T17:55:55Z</updated>

		<summary type="html">&lt;p&gt;fix C&amp;amp;P parts from first run :)&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:55, 13 September 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l87&quot; &gt;Line 87:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 87:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|+++ config.py  2022-09-13 15:12:33.000000000 +0000&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|+++ config.py  2022-09-13 15:12:33.000000000 +0000&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;patching file ./config.py&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;patching file ./config.py&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.orig&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Using Plan A...&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Using Plan A...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Reversed (or previously applied) patch detected!  Skipping patch.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hunk #1 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;succeeded &lt;/ins&gt;at 3136.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hunk #1 &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ignored &lt;/del&gt;at 3136.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;1 out of 1 hunk ignored -- saving rejects to file ./config.py.rej&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;done&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;done&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;63e907d461e379f5aac0e01fd2e7a06ed192cc22dd7749000d15749f56af8a1d&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;63e907d461e379f5aac0e01fd2e7a06ed192cc22dd7749000d15749f56af8a1d&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l102&quot; &gt;Line 102:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Step 3/3 : ADD config.py /var/lib/kolla/venv/lib/python3.6/site-packages/nova/virt/libvirt/config.py&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Step 3/3 : ADD config.py /var/lib/kolla/venv/lib/python3.6/site-packages/nova/virt/libvirt/config.py&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ---&amp;gt; Using cache&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ---&amp;gt; Using cache&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ---&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;6a73782c28e5&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ---&amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;9f24ce46cb50&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Successfully built 9f24ce46cb50&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Successfully built 9f24ce46cb50&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Successfully tagged kolla/centos-source-nova-compute:13.1.0-vpgu&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Successfully tagged kolla/centos-source-nova-compute:13.1.0-vpgu&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Antony</name></author>
	</entry>
	<entry>
		<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Quickly_patch_a_docker_image&amp;diff=32674&amp;oldid=prev</id>
		<title>Antony: Created page with &quot;== Overview  == In this example we are going to apply a 2 line patch to the xena nova_compute  to fix vgpu. We will then update the image in our registry and push it.  I have...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Quickly_patch_a_docker_image&amp;diff=32674&amp;oldid=prev"/>
		<updated>2022-09-13T17:47:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Overview  == In this example we are going to apply a 2 line patch to the xena nova_compute  to fix vgpu. We will then update the image in our registry and push it.  I have...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Overview  ==&lt;br /&gt;
In this example we are going to apply a 2 line patch to the xena nova_compute  to fix vgpu. We will then update the image in our registry and push it.&lt;br /&gt;
&lt;br /&gt;
I have tested this by copying out the original file that needs patching on a live system to a backup file, making the new version in a new file testing and then making a patch.&lt;br /&gt;
&lt;br /&gt;
After this we will move on to making a new image using a Dockerfile and then pushing back to the registry&lt;br /&gt;
&lt;br /&gt;
== Make the patch on the live system ==&lt;br /&gt;
copy original and make new version with changes&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker cp nova_compute:/var/lib/kolla/venv/lib/python3.6/site-packages/nova/virt/libvirt/config.py config.py.old&lt;br /&gt;
cp config.py.old config.py&lt;br /&gt;
vi config.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ok now we creating a patch file like this using diff like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff -Naur config.py.old config.py &amp;gt; vgpu.patch&lt;br /&gt;
cat vgpu.patch&lt;br /&gt;
--- config.py.old       2022-06-08 18:06:30.000000000 +0200&lt;br /&gt;
+++ config.py   2022-06-10 17:01:49.000000000 +0200&lt;br /&gt;
@@ -3136,6 +3136,8 @@&lt;br /&gt;
         for c in xmldoc:&lt;br /&gt;
             if c.tag == &amp;quot;name&amp;quot;:&lt;br /&gt;
                 self.name = c.text&lt;br /&gt;
+                if len(self.name) &amp;gt; 41:&lt;br /&gt;
+                    self.name = self.name[:41]&lt;br /&gt;
             elif c.tag == &amp;quot;parent&amp;quot;:&lt;br /&gt;
                 self.parent = c.text&lt;br /&gt;
             elif c.tag == &amp;quot;capability&amp;quot; and c.get(&amp;quot;type&amp;quot;) in [&amp;#039;pci&amp;#039;, &amp;#039;net&amp;#039;]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ok great I will copy and past this file into my image building VM which is called centos stream 8 build in the admin project on the BMC demo system.&lt;br /&gt;
if this has not changed then you should be able to hit  this using &lt;br /&gt;
&lt;br /&gt;
ssh centos@10.10.12.93 &lt;br /&gt;
&lt;br /&gt;
if you are on the VPN&lt;br /&gt;
&lt;br /&gt;
== patching the image on the centos-stream build vm ==&lt;br /&gt;
&lt;br /&gt;
I have already setup this node to push to the registry&lt;br /&gt;
&lt;br /&gt;
I make a patch folder in /home/centos/kolla-xena/nova-compute-vgpu-patch&lt;br /&gt;
&lt;br /&gt;
I copy my patch file in (C&amp;amp;P in vi or scp is fine)&lt;br /&gt;
&lt;br /&gt;
I make my script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat patch.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
if  [ ! -f ./config.py ]; then&lt;br /&gt;
  container_id=$(docker create registry.define-technology.com:5000/kolla/centos-source-nova-compute:13.1.0)&lt;br /&gt;
  docker cp $container_id:/var/lib/kolla/venv/lib/python3.6/site-packages/nova/virt/libvirt/config.py ./config.py&lt;br /&gt;
  patch --verbose --backup -p0 --forward ./config.py  vgpu.patch&lt;br /&gt;
  docker rm $container_id&lt;br /&gt;
fi&lt;br /&gt;
docker build ./ -t kolla/centos-source-nova-compute:13.1.0-vpgu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What this does is (if there is no config.py in pwd) &lt;br /&gt;
# create a temporary container from the unpatched version in the registry created using kolla-build (registry.define-technology.com:5000/kolla/centos-source-nova-compute:13.1.0)&lt;br /&gt;
# copy out  the original file we want to modify and patch it here &lt;br /&gt;
# patch the file using our patch file we copy and pasted in (yes we could have copied the original instead and skipped all these steps but it&amp;#039;s a pain to go from vpn to another vpn)&lt;br /&gt;
# remove out temporary container&lt;br /&gt;
# finally use a docker file in the current dir that we will create next and tag the image in the local machine as kolla/centos-source-nova-compute:13.1.0-vpgu&lt;br /&gt;
&lt;br /&gt;
I make my Dockerfile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat Dockerfile&lt;br /&gt;
FROM registry.define-technology.com:5000/kolla/centos-source-nova-compute:13.1.0&lt;br /&gt;
MAINTAINER definetech&lt;br /&gt;
ADD config.py /var/lib/kolla/venv/lib/python3.6/site-packages/nova/virt/libvirt/config.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What this does is pull the container from thee registry and add the file the script will make&lt;br /&gt;
&lt;br /&gt;
I then make the patch script executable and run it&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod a+x patch.sh&lt;br /&gt;
./patch.sh &lt;br /&gt;
[centos@centos-stream-8-build nova-compute-vgpu-patch]$ ./patch.sh&lt;br /&gt;
Hmm...  Looks like a unified diff to me...&lt;br /&gt;
The text leading up to this was:&lt;br /&gt;
--------------------------&lt;br /&gt;
|--- config.py.orig     2022-06-08 16:06:30.000000000 +0000&lt;br /&gt;
|+++ config.py  2022-09-13 15:12:33.000000000 +0000&lt;br /&gt;
--------------------------&lt;br /&gt;
patching file ./config.py&lt;br /&gt;
Using Plan A...&lt;br /&gt;
Reversed (or previously applied) patch detected!  Skipping patch.&lt;br /&gt;
Hunk #1 ignored at 3136.&lt;br /&gt;
1 out of 1 hunk ignored -- saving rejects to file ./config.py.rej&lt;br /&gt;
done&lt;br /&gt;
63e907d461e379f5aac0e01fd2e7a06ed192cc22dd7749000d15749f56af8a1d&lt;br /&gt;
Sending build context to Docker daemon    129kB&lt;br /&gt;
Step 1/3 : FROM registry.define-technology.com:5000/kolla/centos-source-nova-compute:13.1.0&lt;br /&gt;
 ---&amp;gt; d679222ce5f6&lt;br /&gt;
Step 2/3 : MAINTAINER definetech&lt;br /&gt;
 ---&amp;gt; Using cache&lt;br /&gt;
 ---&amp;gt; a5116a321cf4&lt;br /&gt;
Step 3/3 : ADD config.py /var/lib/kolla/venv/lib/python3.6/site-packages/nova/virt/libvirt/config.py&lt;br /&gt;
 ---&amp;gt; Using cache&lt;br /&gt;
 ---&amp;gt; 6a73782c28e5&lt;br /&gt;
Successfully built 9f24ce46cb50&lt;br /&gt;
Successfully tagged kolla/centos-source-nova-compute:13.1.0-vpgu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OK cool!&lt;br /&gt;
&lt;br /&gt;
== retag the image and push it ==&lt;br /&gt;
we need to tag it into the remote registry and push it like this: I tag it 2x so the xena tag points to this latest one so my kolla-ansible deploy will auto pull it next time the other is a specific version I can grab easily&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker image tag 6a73782c28e5 registry.define-technology.com:5000/kolla/centos-source-nova-compute:xena&lt;br /&gt;
docker image tag 6a73782c28e5 registry.define-technology.com:5000/kolla/centos-source-nova-compute:13.1.0-vpgu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I then push both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
[centos@centos-stream-8-build nov-compute-vgpu-patch]$ docker image push registry.define-technology.com:5000/kolla/centos-source-nova-compute:xena&lt;br /&gt;
The push refers to repository [registry.define-technology.com:5000/kolla/centos-source-nova-compute]&lt;br /&gt;
9edd2979f9d7: Pushed&lt;br /&gt;
10a928327833: Layer already exists&lt;br /&gt;
72e10fe91e4b: Layer already exists&lt;br /&gt;
1a955b80310b: Layer already exists&lt;br /&gt;
c1a9650e0fbe: Layer already exists&lt;br /&gt;
db13f4375cdb: Layer already exists&lt;br /&gt;
c86c5a7f9ba5: Layer already exists&lt;br /&gt;
0f03ed29d7ae: Layer already exists&lt;br /&gt;
157f8647b5a6: Layer already exists&lt;br /&gt;
c00b5c2f7e2b: Layer already exists&lt;br /&gt;
8a81428241a4: Layer already exists&lt;br /&gt;
5df710584acd: Layer already exists&lt;br /&gt;
e6c7a4598f0e: Layer already exists&lt;br /&gt;
ca327191c31a: Layer already exists&lt;br /&gt;
4d67bdd24bbe: Layer already exists&lt;br /&gt;
a4c469747181: Layer already exists&lt;br /&gt;
a87ed12b9bd5: Layer already exists&lt;br /&gt;
fa47a7b3f947: Layer already exists&lt;br /&gt;
db26ae996658: Layer already exists&lt;br /&gt;
f47b56de3bb8: Layer already exists&lt;br /&gt;
c15e6d575719: Layer already exists&lt;br /&gt;
3a23548130c2: Layer already exists&lt;br /&gt;
caa9beadec0d: Layer already exists&lt;br /&gt;
4f0c7c3cdca0: Layer already exists&lt;br /&gt;
e45fcf539a8f: Layer already exists&lt;br /&gt;
940953f5da7b: Layer already exists&lt;br /&gt;
2295777f2289: Layer already exists&lt;br /&gt;
0f9e2cd6f428: Layer already exists&lt;br /&gt;
d8ddf38fea32: Layer already exists&lt;br /&gt;
7e803b580653: Layer already exists&lt;br /&gt;
7f8db04cdf74: Layer already exists&lt;br /&gt;
b0d8b48a0361: Layer already exists&lt;br /&gt;
f1169f782306: Layer already exists&lt;br /&gt;
d7db75e2b431: Layer already exists&lt;br /&gt;
4f2cfc8e1d9c: Layer already exists&lt;br /&gt;
2fda120dca9d: Layer already exists&lt;br /&gt;
b20f86037b6a: Layer already exists&lt;br /&gt;
cfb384290b61: Layer already exists&lt;br /&gt;
2fa7a397a825: Layer already exists&lt;br /&gt;
7cec48be98b5: Layer already exists&lt;br /&gt;
e9f8533305d1: Layer already exists&lt;br /&gt;
f0e656ec34e5: Layer already exists&lt;br /&gt;
8fb83a9e4695: Layer already exists&lt;br /&gt;
6ffceb8347ee: Layer already exists&lt;br /&gt;
22a079a22b0a: Layer already exists&lt;br /&gt;
b8e0cedff7ca: Layer already exists&lt;br /&gt;
2beade966b29: Layer already exists&lt;br /&gt;
2bee813718b1: Layer already exists&lt;br /&gt;
de74aa5c66af: Layer already exists&lt;br /&gt;
0067d70a5699: Layer already exists&lt;br /&gt;
55746cb9d6dc: Layer already exists&lt;br /&gt;
5d9ef8a0564d: Layer already exists&lt;br /&gt;
e9b312bba1ab: Layer already exists&lt;br /&gt;
c86122b5e4d3: Layer already exists&lt;br /&gt;
3813924f3fa4: Layer already exists&lt;br /&gt;
xena: digest: sha256:cdbcd75ad9c9e551df481a33a5b4bcd273d0c6d48ebc36c24c49624d202822ce size: 11802&lt;br /&gt;
[centos@centos-stream-8-build nov-compute-vgpu-patch]$ docker image push registry.define-technology.com:5000/kolla/centos-source-nova-compute:13.1.0-vpgu&lt;br /&gt;
The push refers to repository [registry.define-technology.com:5000/kolla/centos-source-nova-compute]&lt;br /&gt;
9edd2979f9d7: Layer already exists&lt;br /&gt;
10a928327833: Layer already exists&lt;br /&gt;
72e10fe91e4b: Layer already exists&lt;br /&gt;
1a955b80310b: Layer already exists&lt;br /&gt;
c1a9650e0fbe: Layer already exists&lt;br /&gt;
db13f4375cdb: Layer already exists&lt;br /&gt;
c86c5a7f9ba5: Layer already exists&lt;br /&gt;
0f03ed29d7ae: Layer already exists&lt;br /&gt;
157f8647b5a6: Layer already exists&lt;br /&gt;
c00b5c2f7e2b: Layer already exists&lt;br /&gt;
8a81428241a4: Layer already exists&lt;br /&gt;
5df710584acd: Layer already exists&lt;br /&gt;
e6c7a4598f0e: Layer already exists&lt;br /&gt;
ca327191c31a: Layer already exists&lt;br /&gt;
4d67bdd24bbe: Layer already exists&lt;br /&gt;
a4c469747181: Layer already exists&lt;br /&gt;
a87ed12b9bd5: Layer already exists&lt;br /&gt;
fa47a7b3f947: Layer already exists&lt;br /&gt;
db26ae996658: Layer already exists&lt;br /&gt;
f47b56de3bb8: Layer already exists&lt;br /&gt;
c15e6d575719: Layer already exists&lt;br /&gt;
3a23548130c2: Layer already exists&lt;br /&gt;
caa9beadec0d: Layer already exists&lt;br /&gt;
4f0c7c3cdca0: Layer already exists&lt;br /&gt;
e45fcf539a8f: Layer already exists&lt;br /&gt;
940953f5da7b: Layer already exists&lt;br /&gt;
2295777f2289: Layer already exists&lt;br /&gt;
0f9e2cd6f428: Layer already exists&lt;br /&gt;
d8ddf38fea32: Layer already exists&lt;br /&gt;
7e803b580653: Layer already exists&lt;br /&gt;
7f8db04cdf74: Layer already exists&lt;br /&gt;
b0d8b48a0361: Layer already exists&lt;br /&gt;
f1169f782306: Layer already exists&lt;br /&gt;
d7db75e2b431: Layer already exists&lt;br /&gt;
4f2cfc8e1d9c: Layer already exists&lt;br /&gt;
2fda120dca9d: Layer already exists&lt;br /&gt;
b20f86037b6a: Layer already exists&lt;br /&gt;
cfb384290b61: Layer already exists&lt;br /&gt;
2fa7a397a825: Layer already exists&lt;br /&gt;
7cec48be98b5: Layer already exists&lt;br /&gt;
e9f8533305d1: Layer already exists&lt;br /&gt;
f0e656ec34e5: Layer already exists&lt;br /&gt;
8fb83a9e4695: Layer already exists&lt;br /&gt;
6ffceb8347ee: Layer already exists&lt;br /&gt;
22a079a22b0a: Layer already exists&lt;br /&gt;
b8e0cedff7ca: Layer already exists&lt;br /&gt;
2beade966b29: Layer already exists&lt;br /&gt;
2bee813718b1: Layer already exists&lt;br /&gt;
de74aa5c66af: Layer already exists&lt;br /&gt;
0067d70a5699: Layer already exists&lt;br /&gt;
55746cb9d6dc: Layer already exists&lt;br /&gt;
5d9ef8a0564d: Layer already exists&lt;br /&gt;
e9b312bba1ab: Layer already exists&lt;br /&gt;
c86122b5e4d3: Layer already exists&lt;br /&gt;
3813924f3fa4: Layer already exists&lt;br /&gt;
13.1.0-vpgu: digest: sha256:cdbcd75ad9c9e551df481a33a5b4bcd273d0c6d48ebc36c24c49624d202822ce size: 11802&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Done!&lt;/div&gt;</summary>
		<author><name>Antony</name></author>
	</entry>
</feed>