diff --git a/docker_templates/ceilometer/ceilometer-alarm/Dockerfile.j2 b/docker_templates/ceilometer/ceilometer-alarm/Dockerfile.j2
index bb53965595d72992124525466e3c431d6859ddf2..aa62562ac069b922ea84e2082c6052c5e16292df 100644
--- a/docker_templates/ceilometer/ceilometer-alarm/Dockerfile.j2
+++ b/docker_templates/ceilometer/ceilometer-alarm/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ceilometer/ceilometer-api/Dockerfile.j2 b/docker_templates/ceilometer/ceilometer-api/Dockerfile.j2
index cf9150af4454cc7ccc810842aea8ad96f90b0993..805e5e8eb0af21d08c1537be5a13408bb2283be9 100644
--- a/docker_templates/ceilometer/ceilometer-api/Dockerfile.j2
+++ b/docker_templates/ceilometer/ceilometer-api/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ceilometer/ceilometer-central/Dockerfile.j2 b/docker_templates/ceilometer/ceilometer-central/Dockerfile.j2
index b5322b3970e4dd15b4c605d0bb06915cedd9ad24..b45c5fac3395514ac5fec0a710f8d343cedc8e01 100644
--- a/docker_templates/ceilometer/ceilometer-central/Dockerfile.j2
+++ b/docker_templates/ceilometer/ceilometer-central/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ceilometer/ceilometer-collector/Dockerfile.j2 b/docker_templates/ceilometer/ceilometer-collector/Dockerfile.j2
index 44f10d6179aa33ddff7c0f4bbff6ea991e9a8db5..6f425e8559d3eecf7bfb15dd9eab65a856a2b08d 100644
--- a/docker_templates/ceilometer/ceilometer-collector/Dockerfile.j2
+++ b/docker_templates/ceilometer/ceilometer-collector/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ceilometer/ceilometer-compute/Dockerfile.j2 b/docker_templates/ceilometer/ceilometer-compute/Dockerfile.j2
index c771743814c18bf9c3bcbd908db1c752335dd650..0487af710b975d683c05c6de30f43b768eabfc38 100644
--- a/docker_templates/ceilometer/ceilometer-compute/Dockerfile.j2
+++ b/docker_templates/ceilometer/ceilometer-compute/Dockerfile.j2
@@ -16,3 +16,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ceilometer/ceilometer-notification/Dockerfile.j2 b/docker_templates/ceilometer/ceilometer-notification/Dockerfile.j2
index af220a37136618ea2d1daa07762e1de02fab779e..67fcfb50e30859d30c216e73886df46f7cd07748 100644
--- a/docker_templates/ceilometer/ceilometer-notification/Dockerfile.j2
+++ b/docker_templates/ceilometer/ceilometer-notification/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/cinder/cinder-api/Dockerfile.j2 b/docker_templates/cinder/cinder-api/Dockerfile.j2
index 97ad23ac01376fc6a48ae0e5e7fd2b46b5efacc1..196f93bafa8bcdac7d6eb157d81eb2658429d99c 100644
--- a/docker_templates/cinder/cinder-api/Dockerfile.j2
+++ b/docker_templates/cinder/cinder-api/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/cinder/cinder-backup/Dockerfile.j2 b/docker_templates/cinder/cinder-backup/Dockerfile.j2
index 8ef8c045af89cfbaa22e28eecc20a1dc29176624..fa331b195f8f4399624e850d7aa3b1a25917dcf8 100644
--- a/docker_templates/cinder/cinder-backup/Dockerfile.j2
+++ b/docker_templates/cinder/cinder-backup/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/cinder/cinder-scheduler/Dockerfile.j2 b/docker_templates/cinder/cinder-scheduler/Dockerfile.j2
index 8ef8c045af89cfbaa22e28eecc20a1dc29176624..fa331b195f8f4399624e850d7aa3b1a25917dcf8 100644
--- a/docker_templates/cinder/cinder-scheduler/Dockerfile.j2
+++ b/docker_templates/cinder/cinder-scheduler/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/cinder/cinder-volume/Dockerfile.j2 b/docker_templates/cinder/cinder-volume/Dockerfile.j2
index 3e708be8a358989c31d16cf4bb4e2ad201f64f1e..6393798bd957685b39c50365e1034af9a807675f 100644
--- a/docker_templates/cinder/cinder-volume/Dockerfile.j2
+++ b/docker_templates/cinder/cinder-volume/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY ./start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/data/Dockerfile.j2 b/docker_templates/data/Dockerfile.j2
index 18933ef55953db105642f9655e57ea0e1dfa58eb..7fecdb0684ca5c9e54c7fcae0ab7c97b4f53dac6 100644
--- a/docker_templates/data/Dockerfile.j2
+++ b/docker_templates/data/Dockerfile.j2
@@ -2,3 +2,5 @@ FROM {{ base_distro }}:{{ base_distro_tag }}
 MAINTAINER Kolla Project (https://launchpad.net/kolla)
 
 CMD /bin/sleep infinity
+
+{{ include_footer }}
diff --git a/docker_templates/designate/designate-api/Dockerfile.j2 b/docker_templates/designate/designate-api/Dockerfile.j2
index 203d6f0ff9df226cf98f55279e0f6a002ef24fbe..75f4b06ee6b6ebd767d1c23945343d3da26686cf 100644
--- a/docker_templates/designate/designate-api/Dockerfile.j2
+++ b/docker_templates/designate/designate-api/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/designate/designate-backend-bind9/Dockerfile.j2 b/docker_templates/designate/designate-backend-bind9/Dockerfile.j2
index 4b215f8f0c732f325a506a4637fdc2a9415a7964..06f86c04333f5a2f5eba77c9cc3b7d2e12e98a17 100644
--- a/docker_templates/designate/designate-backend-bind9/Dockerfile.j2
+++ b/docker_templates/designate/designate-backend-bind9/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/designate/designate-central/Dockerfile.j2 b/docker_templates/designate/designate-central/Dockerfile.j2
index e90c3bb2ee1245113f743cbd7d6d57beee6d20e9..771ff3c684fbd6b4320774ed4d28f3e63e37a351 100644
--- a/docker_templates/designate/designate-central/Dockerfile.j2
+++ b/docker_templates/designate/designate-central/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/designate/designate-mdns/Dockerfile.j2 b/docker_templates/designate/designate-mdns/Dockerfile.j2
index c93f1d95695c10cf5c05ad1755ce5e71671fb8be..cc5f5fb89aee176ee968a62453bf9bee1c8b52d4 100644
--- a/docker_templates/designate/designate-mdns/Dockerfile.j2
+++ b/docker_templates/designate/designate-mdns/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/designate/designate-poolmanager/Dockerfile.j2 b/docker_templates/designate/designate-poolmanager/Dockerfile.j2
index 5d1dabdda7f568fcddc54eb1df83015962ef8ec7..0fc968b90e5869c2f78e7c6fba868cf56f576f00 100644
--- a/docker_templates/designate/designate-poolmanager/Dockerfile.j2
+++ b/docker_templates/designate/designate-poolmanager/Dockerfile.j2
@@ -17,3 +17,5 @@ COPY start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/designate/designate-sink/Dockerfile.j2 b/docker_templates/designate/designate-sink/Dockerfile.j2
index f74e36bbe85d0594a6db3b9ac47fcce535f919c6..c0ea23b2d299e27928bee42f77004c56a04e5a60 100644
--- a/docker_templates/designate/designate-sink/Dockerfile.j2
+++ b/docker_templates/designate/designate-sink/Dockerfile.j2
@@ -16,3 +16,5 @@ COPY start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/galera/Dockerfile.j2 b/docker_templates/galera/Dockerfile.j2
index 7856a7f243ceb7c7398f43951912c5ccce4aa330..acbb9bc51dd22cdb537e6a95d8499ad833d8dc36 100644
--- a/docker_templates/galera/Dockerfile.j2
+++ b/docker_templates/galera/Dockerfile.j2
@@ -46,3 +46,5 @@ COPY config-external.sh /opt/kolla/
 COPY start.sh /
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/glance/glance-api/Dockerfile.j2 b/docker_templates/glance/glance-api/Dockerfile.j2
index f652822f5e56ce9975d87391aa055453d8a1f840..e603a6c3635f9520d96cb194bfb97b39a1e6fa92 100644
--- a/docker_templates/glance/glance-api/Dockerfile.j2
+++ b/docker_templates/glance/glance-api/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/glance/glance-registry/Dockerfile.j2 b/docker_templates/glance/glance-registry/Dockerfile.j2
index f652822f5e56ce9975d87391aa055453d8a1f840..e603a6c3635f9520d96cb194bfb97b39a1e6fa92 100644
--- a/docker_templates/glance/glance-registry/Dockerfile.j2
+++ b/docker_templates/glance/glance-registry/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/gnocchi/gnocchi-api/Dockerfile.j2 b/docker_templates/gnocchi/gnocchi-api/Dockerfile.j2
index 9bb144ed7164acf8a9ff4af60ef8d04c67075f6d..9ca70113cd5472ee4ee0d1501f7ac9966b9f2e94 100644
--- a/docker_templates/gnocchi/gnocchi-api/Dockerfile.j2
+++ b/docker_templates/gnocchi/gnocchi-api/Dockerfile.j2
@@ -17,3 +17,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/gnocchi/gnocchi-statsd/Dockerfile.j2 b/docker_templates/gnocchi/gnocchi-statsd/Dockerfile.j2
index 446c47d1c93c7cb219b39cb0996cdc5f21427d73..99f1374a2826852a302090f8deec96b9c5414a9d 100644
--- a/docker_templates/gnocchi/gnocchi-statsd/Dockerfile.j2
+++ b/docker_templates/gnocchi/gnocchi-statsd/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/haproxy/Dockerfile.j2 b/docker_templates/haproxy/Dockerfile.j2
index 1a40d5d932a042e7c452e651914490ca97942dbb..2858f436a9fcab40db669bf5acc09313ee33c400 100755
--- a/docker_templates/haproxy/Dockerfile.j2
+++ b/docker_templates/haproxy/Dockerfile.j2
@@ -23,3 +23,5 @@ COPY start.sh /
 COPY config-external.sh ensure_latest_config.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/heat/heat-api-cfn/Dockerfile.j2 b/docker_templates/heat/heat-api-cfn/Dockerfile.j2
index ecff87b009c4da9b29a53c2364eab5e570fe017f..f199c16cfde588a865a3dcf2cd6a8f14eb227520 100644
--- a/docker_templates/heat/heat-api-cfn/Dockerfile.j2
+++ b/docker_templates/heat/heat-api-cfn/Dockerfile.j2
@@ -21,3 +21,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/heat/heat-api/Dockerfile.j2 b/docker_templates/heat/heat-api/Dockerfile.j2
index 2688a3270656a8f60e6e2c051e78a082bc89a561..8a782d8d3b504bdfce3ad9264d63c4feddc2d85b 100644
--- a/docker_templates/heat/heat-api/Dockerfile.j2
+++ b/docker_templates/heat/heat-api/Dockerfile.j2
@@ -21,3 +21,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/heat/heat-engine/Dockerfile.j2 b/docker_templates/heat/heat-engine/Dockerfile.j2
index d080fec6a4d3215cb4683cdfb7aa3e1cc6afc996..5002d519d218c31fdf3b367571601722f2e9f949 100644
--- a/docker_templates/heat/heat-engine/Dockerfile.j2
+++ b/docker_templates/heat/heat-engine/Dockerfile.j2
@@ -24,3 +24,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/horizon/Dockerfile.j2 b/docker_templates/horizon/Dockerfile.j2
index d05b21c158879af94035d3587ae6d63f00352b9d..2fe69b3d22ed14748f3a34eba4a70721f87373ad 100644
--- a/docker_templates/horizon/Dockerfile.j2
+++ b/docker_templates/horizon/Dockerfile.j2
@@ -54,3 +54,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ironic/ironic-api/Dockerfile.j2 b/docker_templates/ironic/ironic-api/Dockerfile.j2
index 3aa2322ef7dfd3c19204006fba94eabd76c2db61..5bce3bddaf7800f4083f23f48f57357b0142f209 100644
--- a/docker_templates/ironic/ironic-api/Dockerfile.j2
+++ b/docker_templates/ironic/ironic-api/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ironic/ironic-conductor/Dockerfile.j2 b/docker_templates/ironic/ironic-conductor/Dockerfile.j2
index 65c816d62c6348a116476dd8b4ff2f5f3223daab..d380332300df2d99b4413ead0fb0a70c505485e4 100644
--- a/docker_templates/ironic/ironic-conductor/Dockerfile.j2
+++ b/docker_templates/ironic/ironic-conductor/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/ironic/ironic-discoverd/Dockerfile.j2 b/docker_templates/ironic/ironic-discoverd/Dockerfile.j2
index 6de58d8610dc0487b02dcb6fa11ff18d7c447745..cb4e8b80f81f44f0dbc37359a9c451fc638e0af1 100644
--- a/docker_templates/ironic/ironic-discoverd/Dockerfile.j2
+++ b/docker_templates/ironic/ironic-discoverd/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/keepalived/Dockerfile.j2 b/docker_templates/keepalived/Dockerfile.j2
index 3ad2a667ce31195cf0ac32d281366a485054fbf1..325e4c2c5c762a2e7343d45cf22582e09eb2b1da 100644
--- a/docker_templates/keepalived/Dockerfile.j2
+++ b/docker_templates/keepalived/Dockerfile.j2
@@ -22,3 +22,5 @@ COPY start.sh check_alive.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/keystone/Dockerfile.j2 b/docker_templates/keystone/Dockerfile.j2
index ec8144b91432d378f4bedd4a566bf30df8311669..a3b686165579b4fa27f026cff151122d93b25486 100644
--- a/docker_templates/keystone/Dockerfile.j2
+++ b/docker_templates/keystone/Dockerfile.j2
@@ -67,3 +67,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/kolla-ansible/Dockerfile.j2 b/docker_templates/kolla-ansible/Dockerfile.j2
index e95a90aa7e081554d15cc7762501c8a34b288fbd..9975f587383f9c9dbb9ae4ab1f6f6ab0cab2f2c4 100644
--- a/docker_templates/kolla-ansible/Dockerfile.j2
+++ b/docker_templates/kolla-ansible/Dockerfile.j2
@@ -34,3 +34,5 @@ RUN mkdir -p /etc/ansible /usr/share/ansible \
     && echo 'localhost ansible_connection=local' > /etc/ansible/hosts
 
 COPY kolla_keystone_service.py kolla_keystone_user.py /usr/share/ansible/
+
+{{ include_footer }}
diff --git a/docker_templates/magnum/magnum-api/Dockerfile.j2 b/docker_templates/magnum/magnum-api/Dockerfile.j2
index 4da0f3a658c431a3df10d1cd5ffc3ac80811615d..e208a115ede1e0aa2b5bea70befc5bc63995ecc8 100644
--- a/docker_templates/magnum/magnum-api/Dockerfile.j2
+++ b/docker_templates/magnum/magnum-api/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
 
+
+{{ include_footer }}
diff --git a/docker_templates/magnum/magnum-conductor/Dockerfile.j2 b/docker_templates/magnum/magnum-conductor/Dockerfile.j2
index 2f166035999920ed15f938f1f33a4f5929a5cd9b..c143700854f3851d3b6e73dfcfd8dc70a64dc103 100644
--- a/docker_templates/magnum/magnum-conductor/Dockerfile.j2
+++ b/docker_templates/magnum/magnum-conductor/Dockerfile.j2
@@ -19,3 +19,5 @@ COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
 
+
+{{ include_footer }}
diff --git a/docker_templates/memcached/Dockerfile.j2 b/docker_templates/memcached/Dockerfile.j2
index dcf4bd042772f2bf9f97a50f53a8843ce1dca71c..0c0111f7e11d5c0d9e1be2f52d673ba3a03ed1bd 100644
--- a/docker_templates/memcached/Dockerfile.j2
+++ b/docker_templates/memcached/Dockerfile.j2
@@ -17,3 +17,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/mongodb/Dockerfile.j2 b/docker_templates/mongodb/Dockerfile.j2
index 16f8cd2fcbfd0d417007c204f5e69634f7aa9274..ee82f0b7a1468b6d5e4f940bbc3f14f6e99019fc 100644
--- a/docker_templates/mongodb/Dockerfile.j2
+++ b/docker_templates/mongodb/Dockerfile.j2
@@ -21,3 +21,5 @@ VOLUME /data/db
 VOLUME /var/log/mongodb
 
 ENTRYPOINT exec /bin/mongod --dbpath /data/db --logpath /var/log/mongodb/mongo.log --noprealloc --smallfiles
+
+{{ include_footer }}
diff --git a/docker_templates/murano/murano-api/Dockerfile.j2 b/docker_templates/murano/murano-api/Dockerfile.j2
index 3136c77ad0106ea1395b2f8af231f8e0fecba813..f1d7e1f42a8d8bb658a303cc2b3b831e4dee63c9 100644
--- a/docker_templates/murano/murano-api/Dockerfile.j2
+++ b/docker_templates/murano/murano-api/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY config-external.sh /opt/kolla/
 COPY start.sh /
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/murano/murano-engine/Dockerfile.j2 b/docker_templates/murano/murano-engine/Dockerfile.j2
index 3136c77ad0106ea1395b2f8af231f8e0fecba813..f1d7e1f42a8d8bb658a303cc2b3b831e4dee63c9 100644
--- a/docker_templates/murano/murano-engine/Dockerfile.j2
+++ b/docker_templates/murano/murano-engine/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY config-external.sh /opt/kolla/
 COPY start.sh /
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/neutron/neutron-agents/Dockerfile.j2 b/docker_templates/neutron/neutron-agents/Dockerfile.j2
index cb4cec403f1b8fd7222a15a31500db613cb52beb..590443e00ec39c4d898fa96d408a204ab7f0a3c0 100644
--- a/docker_templates/neutron/neutron-agents/Dockerfile.j2
+++ b/docker_templates/neutron/neutron-agents/Dockerfile.j2
@@ -31,3 +31,5 @@ COPY neutron-l3-agent/ /opt/kolla/neutron-l3-agent
 COPY neutron-metadata-agent/ /opt/kolla/neutron-metadata-agent
 
 CMD ["/usr/bin/supervisord"]
+
+{{ include_footer }}
diff --git a/docker_templates/neutron/neutron-linuxbridge-agent/Dockerfile.j2 b/docker_templates/neutron/neutron-linuxbridge-agent/Dockerfile.j2
index cdac55369ff0931c314a701e95fc4f7fad51016d..58d5ae6c38a6849b79bf2ca8f172b0b71278b3e3 100644
--- a/docker_templates/neutron/neutron-linuxbridge-agent/Dockerfile.j2
+++ b/docker_templates/neutron/neutron-linuxbridge-agent/Dockerfile.j2
@@ -24,3 +24,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/neutron/neutron-openvswitch-agent/Dockerfile.j2 b/docker_templates/neutron/neutron-openvswitch-agent/Dockerfile.j2
index 977f53d230585530041ace07afabd76796196142..ad12e55111f2bbfdbb2ea6d08a3850c849e7ca5b 100644
--- a/docker_templates/neutron/neutron-openvswitch-agent/Dockerfile.j2
+++ b/docker_templates/neutron/neutron-openvswitch-agent/Dockerfile.j2
@@ -28,3 +28,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/neutron/neutron-server/Dockerfile.j2 b/docker_templates/neutron/neutron-server/Dockerfile.j2
index 0c4a2cfa159718cde98a2f2a1e44a86ca134f3e4..9cfe634c47a3af076297c517d537471c3b8b70f1 100644
--- a/docker_templates/neutron/neutron-server/Dockerfile.j2
+++ b/docker_templates/neutron/neutron-server/Dockerfile.j2
@@ -27,3 +27,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-api/Dockerfile.j2 b/docker_templates/nova/nova-api/Dockerfile.j2
index 1b1e119275736b2df856ff6c4fc658a82e995d84..b906d19378d149e39365180bc04d92088f0679cc 100644
--- a/docker_templates/nova/nova-api/Dockerfile.j2
+++ b/docker_templates/nova/nova-api/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-compute/Dockerfile.j2 b/docker_templates/nova/nova-compute/Dockerfile.j2
index 214cde4fe5512fb8ca0cc797e1de0582b67a69fb..a8a719023cd88132f44f1741eb513a5a3b162689 100644
--- a/docker_templates/nova/nova-compute/Dockerfile.j2
+++ b/docker_templates/nova/nova-compute/Dockerfile.j2
@@ -30,3 +30,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-conductor/Dockerfile.j2 b/docker_templates/nova/nova-conductor/Dockerfile.j2
index 572d2b46a0e76de2b30c36b4c82ad95a3934c39e..0f42df5c99f85ce7acd213d56518f3f409bf680f 100644
--- a/docker_templates/nova/nova-conductor/Dockerfile.j2
+++ b/docker_templates/nova/nova-conductor/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-consoleauth/Dockerfile.j2 b/docker_templates/nova/nova-consoleauth/Dockerfile.j2
index c1e8cbffbf1f1b3fd4bda806e291bf0af061ec8b..1c8d9ea12281a1f8192b5bbd4456863bc4bb4242 100644
--- a/docker_templates/nova/nova-consoleauth/Dockerfile.j2
+++ b/docker_templates/nova/nova-consoleauth/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-libvirt/Dockerfile.j2 b/docker_templates/nova/nova-libvirt/Dockerfile.j2
index 29e0843c3205951e3237d5a87b49867048adcd83..5ff5254260d5b901a745582f6fd8db909f30b91a 100644
--- a/docker_templates/nova/nova-libvirt/Dockerfile.j2
+++ b/docker_templates/nova/nova-libvirt/Dockerfile.j2
@@ -28,3 +28,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-network/Dockerfile.j2 b/docker_templates/nova/nova-network/Dockerfile.j2
index 2f6adf18ebf5d5329644b2c543a37edf2e968699..60ea394aaf7fec9fc3a60f9c07cf5cd20a22b281 100644
--- a/docker_templates/nova/nova-network/Dockerfile.j2
+++ b/docker_templates/nova/nova-network/Dockerfile.j2
@@ -24,3 +24,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-novncproxy/Dockerfile.j2 b/docker_templates/nova/nova-novncproxy/Dockerfile.j2
index 4ddc7e6c360349f971b3d2b81bcc0b3369a07cbf..b798e00a67969f2686e4fa26b126ec255ca14a88 100644
--- a/docker_templates/nova/nova-novncproxy/Dockerfile.j2
+++ b/docker_templates/nova/nova-novncproxy/Dockerfile.j2
@@ -30,3 +30,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/nova/nova-scheduler/Dockerfile.j2 b/docker_templates/nova/nova-scheduler/Dockerfile.j2
index 66b4910bc8940897d7a9f349e508dd5a64a844ac..5dd0fd507430687f12ec81556c63d463d339923e 100644
--- a/docker_templates/nova/nova-scheduler/Dockerfile.j2
+++ b/docker_templates/nova/nova-scheduler/Dockerfile.j2
@@ -14,3 +14,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/openvswitch/ovs-db-server/Dockerfile.j2 b/docker_templates/openvswitch/ovs-db-server/Dockerfile.j2
index 3d80329c3abf7387f77a69e95bf29bc803893b6e..05c6a928bf2f99d5db07293dce8696d4a49021fc 100644
--- a/docker_templates/openvswitch/ovs-db-server/Dockerfile.j2
+++ b/docker_templates/openvswitch/ovs-db-server/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/openvswitch/ovs-vswitchd/Dockerfile.j2 b/docker_templates/openvswitch/ovs-vswitchd/Dockerfile.j2
index 7271044059130a7acccc0c017082a6dc836c8ed2..59079d3350d0a44e7806bc4a9249295ad09bdfdf 100644
--- a/docker_templates/openvswitch/ovs-vswitchd/Dockerfile.j2
+++ b/docker_templates/openvswitch/ovs-vswitchd/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY ovs_ensure_configured.sh config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/rabbitmq/Dockerfile.j2 b/docker_templates/rabbitmq/Dockerfile.j2
index 1c748eee0b39febcf98c316c0583f21866705a9d..1baf2ce808373f120343836aadd3649740d4f298 100644
--- a/docker_templates/rabbitmq/Dockerfile.j2
+++ b/docker_templates/rabbitmq/Dockerfile.j2
@@ -23,3 +23,5 @@ COPY start.sh /
 COPY config-rabbit.sh config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-account-server/Dockerfile.j2 b/docker_templates/swift/swift-account-server/Dockerfile.j2
index 809091d4d255746440ee79e6306c6f99a8ffd391..7320de9f415b74b433ecd0dde1d0ef9370bf49a9 100644
--- a/docker_templates/swift/swift-account-server/Dockerfile.j2
+++ b/docker_templates/swift/swift-account-server/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-container-server/Dockerfile.j2 b/docker_templates/swift/swift-container-server/Dockerfile.j2
index b4b43d8dc2f715d3ebd4d535ba3018d79ff0a0e2..1a08c0f5dce9c62980514dce02a5795a4f9d2262 100644
--- a/docker_templates/swift/swift-container-server/Dockerfile.j2
+++ b/docker_templates/swift/swift-container-server/Dockerfile.j2
@@ -15,3 +15,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-object-auditor/Dockerfile.j2 b/docker_templates/swift/swift-object-auditor/Dockerfile.j2
index 637501586d4f4280fef22f903a2f1c70f3f07b1c..ab8a7adeeb8bcf3d8650d4cb5c97e7fbc703e29b 100644
--- a/docker_templates/swift/swift-object-auditor/Dockerfile.j2
+++ b/docker_templates/swift/swift-object-auditor/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-object-expirer/Dockerfile.j2 b/docker_templates/swift/swift-object-expirer/Dockerfile.j2
index 8b211f2e443ca6f285a10c42c64f325f73c2081d..af9f3eb580487130f1a5a38bc41f77c0b8dbbd77 100644
--- a/docker_templates/swift/swift-object-expirer/Dockerfile.j2
+++ b/docker_templates/swift/swift-object-expirer/Dockerfile.j2
@@ -16,3 +16,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-object-replicator/Dockerfile.j2 b/docker_templates/swift/swift-object-replicator/Dockerfile.j2
index 637501586d4f4280fef22f903a2f1c70f3f07b1c..ab8a7adeeb8bcf3d8650d4cb5c97e7fbc703e29b 100644
--- a/docker_templates/swift/swift-object-replicator/Dockerfile.j2
+++ b/docker_templates/swift/swift-object-replicator/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-object-server/Dockerfile.j2 b/docker_templates/swift/swift-object-server/Dockerfile.j2
index 637501586d4f4280fef22f903a2f1c70f3f07b1c..ab8a7adeeb8bcf3d8650d4cb5c97e7fbc703e29b 100644
--- a/docker_templates/swift/swift-object-server/Dockerfile.j2
+++ b/docker_templates/swift/swift-object-server/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-object-updater/Dockerfile.j2 b/docker_templates/swift/swift-object-updater/Dockerfile.j2
index 637501586d4f4280fef22f903a2f1c70f3f07b1c..ab8a7adeeb8bcf3d8650d4cb5c97e7fbc703e29b 100644
--- a/docker_templates/swift/swift-object-updater/Dockerfile.j2
+++ b/docker_templates/swift/swift-object-updater/Dockerfile.j2
@@ -5,3 +5,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/swift/swift-proxy-server/Dockerfile.j2 b/docker_templates/swift/swift-proxy-server/Dockerfile.j2
index b668f33e2b8536a5662da14b5f71db3ccb77158a..54d024f8b707e99ba1aba770ef22769ea7b53773 100644
--- a/docker_templates/swift/swift-proxy-server/Dockerfile.j2
+++ b/docker_templates/swift/swift-proxy-server/Dockerfile.j2
@@ -12,3 +12,5 @@ RUN yum -y install openstack-swift-proxy && yum clean all
 COPY ./start.sh /start.sh
 COPY config-external.sh /opt/kolla/
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/docker_templates/zaqar/Dockerfile.j2 b/docker_templates/zaqar/Dockerfile.j2
index fd4752f78b0fe6c6b7b77239ffcde56454ac47f7..4e3a0bc52c0abe9e33a4e7b4b612131afcce7e8b 100644
--- a/docker_templates/zaqar/Dockerfile.j2
+++ b/docker_templates/zaqar/Dockerfile.j2
@@ -28,3 +28,5 @@ COPY start.sh /
 COPY config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
+
+{{ include_footer }}
diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py
index d94d8b29bc3e2754924a3c3346145ce8129fa7aa..d3842d581d3185c74b32b03ee345cbd6cda2d472 100755
--- a/kolla/cmd/build.py
+++ b/kolla/cmd/build.py
@@ -249,6 +249,10 @@ def arg_parser():
                         help=('Path to custom file to be added at '
                               'beginning of base Dockerfile'),
                         type=str)
+    parser.add_argument('-I', '--include-footer',
+                        help=('Path to custom file to be added at '
+                              'end of Dockerfiles for final images'),
+                        type=str)
     return vars(parser.parse_args())
 
 
@@ -281,6 +285,7 @@ class KollaWorker(object):
         self.config = ConfigParser.SafeConfigParser()
         self.config.read(os.path.join(self.base_dir, 'build.ini'))
         self.include_header = args['include_header']
+        self.include_footer = args['include_footer']
         self.regex = args['regex']
 
         self.image_statuses_bad = dict()
@@ -320,6 +325,9 @@ class KollaWorker(object):
             if self.include_header:
                 with open(self.include_header, 'r') as f:
                     values['include_header'] = f.read()
+            if self.include_footer:
+                with open(self.include_footer, 'r') as f:
+                    values['include_footer'] = f.read()
             content = template.render(values)
             with open(os.path.join(path, 'Dockerfile'), 'w') as f:
                 f.write(content)