diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2
index 41b3099456026b85becb90539ff3f8f41858d0aa..9b580978647f2c781716dedd9938b90a04ddd2c4 100644
--- a/docker/openstack-base/Dockerfile.j2
+++ b/docker/openstack-base/Dockerfile.j2
@@ -195,6 +195,7 @@ RUN {{ macros.install_packages(openstack_base_packages | customizable("packages"
             'libffi-devel',
             'libxml2-devel',
             'libxslt-devel',
+            'libyaml-devel',
             'MariaDB-devel',
             'openldap-devel',
             'openssl-devel',
@@ -212,7 +213,9 @@ RUN {{ macros.install_packages(openstack_base_packages | customizable("packages"
             'libmariadbclient-dev',
             'libxslt1-dev',
             'libffi-dev',
+            'libxml2-dev',
             'libyaml-dev',
+            'libz-dev',
             'pkg-config',
             'git'
         ] %}
diff --git a/docker/vmtp/Dockerfile.j2 b/docker/vmtp/Dockerfile.j2
new file mode 100644
index 0000000000000000000000000000000000000000..b286ac03e53a33ed59fd14d5891b58a7b2b8d1fb
--- /dev/null
+++ b/docker/vmtp/Dockerfile.j2
@@ -0,0 +1,25 @@
+FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if install_type == 'binary' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+    && /bin/false
+
+{% elif install_type == 'source' %}
+
+RUN pip install vmtp \
+    && useradd --user-group vmtp
+
+{% endif %}
+
+COPY vmtp_sudoers /etc/sudoers.d/kolla_vmtp_sudoers
+RUN chmod 750 /etc/sudoers.d \
+    && chmod 440 /etc/sudoers.d \
+    && usermod -a -G kolla vmtp
+
+{% block vmtp_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+{{ include_footer }}
+
+USER vmtp
diff --git a/docker/vmtp/vmtp_sudoers b/docker/vmtp/vmtp_sudoers
new file mode 100644
index 0000000000000000000000000000000000000000..fb3a27affc3cc896ddb6ad2c85bf7dba583a2997
--- /dev/null
+++ b/docker/vmtp/vmtp_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R vmtp\: /var/lib/vmtp, /bin/chown -R vmtp\: /var/lib/vmtp
diff --git a/releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml b/releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..34884a42682340121bc47a4be74e3a27f8e03b0c
--- /dev/null
+++ b/releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml
@@ -0,0 +1,3 @@
+---
+features:
+  - Add vmtp support to docker container.
diff --git a/tests/test_build.py b/tests/test_build.py
index 77cc87c8831f4e26f682f9843ab04a88a99f8f0a..76fabc48f3a601ec53ae78ac7bb240263491ea2d 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -70,6 +70,7 @@ class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
     excluded_images = ["kuryr",
                        "neutron-networking-sfc-agent",
                        "senlin-base",
+                       "vmtp",
                        "watcher-base"
                        ]
 
@@ -91,6 +92,7 @@ class BuildTestCentosSource(BuildTest, base.BaseTestCase):
 
 class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase):
     excluded_images = ["neutron-networking-sfc-agent",
+                       "vmtp",
                        "zaqar"
                        ]
 
@@ -113,6 +115,7 @@ class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
     excluded_images = ["kuryr",
                        "neutron-networking-sfc-agent",
                        "senlin-base",
+                       "vmtp",
                        "watcher-base"
                        ]