From febcb600f122dc644f8a05c4a7697a39e9157834 Mon Sep 17 00:00:00 2001 From: Michal Rostecki Date: Wed, 18 Nov 2015 07:22:17 +0100 Subject: Source installation in virtualenv Use virtualenv for installation of OpenStack projects and dependencies to avoid conflicts with Python libraries installed by non-OpenStack binary packages. Change-Id: I21ecd673b2e93335b1d3dd4e279e940c9d694c3c Implements: blueprint virtualenv --- docker/ceilometer/ceilometer-base/Dockerfile.j2 | 2 +- docker/cinder/cinder-base/Dockerfile.j2 | 2 +- docker/designate/designate-base/Dockerfile.j2 | 2 +- docker/glance/glance-base/Dockerfile.j2 | 2 +- docker/gnocchi/gnocchi-base/Dockerfile.j2 | 2 +- docker/heat/heat-base/Dockerfile.j2 | 2 +- docker/horizon/Dockerfile.j2 | 12 +++++------ docker/ironic/ironic-base/Dockerfile.j2 | 2 +- docker/ironic/ironic-discoverd/Dockerfile.j2 | 2 +- docker/keystone/Dockerfile.j2 | 2 +- docker/kolla-ansible/Dockerfile.j2 | 25 +++++++++++++++++++--- docker/magnum/magnum-base/Dockerfile.j2 | 2 +- docker/murano/murano-base/Dockerfile.j2 | 2 +- .../neutron-agents/neutron-dhcp-agent/start.sh | 2 +- .../neutron-agents/neutron-l3-agent/start.sh | 2 +- .../neutron-agents/neutron-metadata-agent/start.sh | 2 +- docker/neutron/neutron-base/Dockerfile.j2 | 2 +- docker/nova/nova-base/Dockerfile.j2 | 2 +- docker/nova/nova-compute/Dockerfile.j2 | 9 +++++--- docker/openstack-base/Dockerfile.j2 | 6 +++++- docker/swift/swift-base/Dockerfile.j2 | 2 +- docker/swift/swift-base/build-swift-ring.py | 6 +++--- docker/tempest/Dockerfile.j2 | 2 +- docker/zaqar/Dockerfile.j2 | 2 +- 24 files changed, 61 insertions(+), 35 deletions(-) (limited to 'docker') diff --git a/docker/ceilometer/ceilometer-base/Dockerfile.j2 b/docker/ceilometer/ceilometer-base/Dockerfile.j2 index 964abad97..26386069f 100644 --- a/docker/ceilometer/ceilometer-base/Dockerfile.j2 +++ b/docker/ceilometer/ceilometer-base/Dockerfile.j2 @@ -15,7 +15,7 @@ RUN yum -y install \ ADD ceilometer-base-archive /ceilometer-base-source RUN ln -s ceilometer-base-source/* ceilometer \ && useradd --user-group ceilometer \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /ceilometer \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /ceilometer \ && mkdir -p /etc/ceilometer /var/log/ceilometer /home/ceilometer \ && cp -r /ceilometer/etc/* /etc/ceilometer/ \ && chown -R ceilometer: /etc/ceilometer /var/log/ceilometer /home/ceilometer diff --git a/docker/cinder/cinder-base/Dockerfile.j2 b/docker/cinder/cinder-base/Dockerfile.j2 index 105e46d54..9adae372a 100644 --- a/docker/cinder/cinder-base/Dockerfile.j2 +++ b/docker/cinder/cinder-base/Dockerfile.j2 @@ -31,7 +31,7 @@ RUN apt-get install -y --no-install-recommends \ ADD cinder-base-archive /cinder-base-source RUN ln -s cinder-base-source/* cinder \ && useradd --user-group cinder \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /cinder \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /cinder \ && mkdir -p /etc/cinder /var/log/cinder /home/cinder \ && cp -r /cinder/etc/cinder/* /etc/cinder/ \ && chown -R cinder: /etc/cinder /var/log/cinder /home/cinder diff --git a/docker/designate/designate-base/Dockerfile.j2 b/docker/designate/designate-base/Dockerfile.j2 index 2ddcb22b6..02a983227 100644 --- a/docker/designate/designate-base/Dockerfile.j2 +++ b/docker/designate/designate-base/Dockerfile.j2 @@ -23,7 +23,7 @@ RUN yum install -y \ ADD designate-base-archive /designate-base-source RUN ln -s designate-base-source/* designate \ && useradd --user-group designate \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /designate \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /designate \ && mkdir -p /etc/designate /var/log/designate /home/designate \ && cp -r /designate/etc/designate/* /etc/designate/ \ && chown -R designate: /etc/designate /var/log/designate /home/designate diff --git a/docker/glance/glance-base/Dockerfile.j2 b/docker/glance/glance-base/Dockerfile.j2 index fa1f62895..91fd39083 100644 --- a/docker/glance/glance-base/Dockerfile.j2 +++ b/docker/glance/glance-base/Dockerfile.j2 @@ -37,7 +37,7 @@ RUN apt-get install -y --no-install-recommends \ ADD glance-base-archive /glance-base-source RUN ln -s glance-base-source/* glance \ && useradd --user-group glance \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /glance \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /glance \ && mkdir -p /etc/glance /var/log/glance /var/lib/glance /home/glance \ && cp -r /glance/etc/* /etc/glance/ \ && chown -R glance: /etc/glance /var/log/glance /var/lib/glance /home/glance diff --git a/docker/gnocchi/gnocchi-base/Dockerfile.j2 b/docker/gnocchi/gnocchi-base/Dockerfile.j2 index 603a56827..93035edee 100644 --- a/docker/gnocchi/gnocchi-base/Dockerfile.j2 +++ b/docker/gnocchi/gnocchi-base/Dockerfile.j2 @@ -17,7 +17,7 @@ RUN apt-get install -y --no-install-recommends libpq-dev \ ADD gnocchi-base-archive /gnocchi-base-source RUN ln -s gnocchi-base-source/* gnocchi \ && useradd --user-group gnocchi \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /gnocchi \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /gnocchi \ && mkdir -p /etc/gnocchi /var/log/gnocchi /home/gnocchi \ && cp -r /gnocchi/etc/* /etc/gnocchi/ \ && chown -R gnocchi: /etc/gnocchi /var/log/gnocchi /home/gnocchi diff --git a/docker/heat/heat-base/Dockerfile.j2 b/docker/heat/heat-base/Dockerfile.j2 index 992051ac5..7bdfb1483 100644 --- a/docker/heat/heat-base/Dockerfile.j2 +++ b/docker/heat/heat-base/Dockerfile.j2 @@ -14,7 +14,7 @@ RUN yum -y install \ ADD heat-base-archive /heat-base-source RUN ln -s heat-base-source/* heat \ && useradd --user-group heat \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /heat \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /heat \ && mkdir -p /etc/heat /var/log/heat /home/heat \ && cp -r /heat/etc/heat/* /etc/heat/ \ && chown -R heat: /etc/heat /var/log/heat /home/heat diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 index b8e483f41..f9e5a7fab 100644 --- a/docker/horizon/Dockerfile.j2 +++ b/docker/horizon/Dockerfile.j2 @@ -43,16 +43,16 @@ RUN apt-get install -y --no-install-recommends \ ADD horizon-archive /horizon-source RUN ln -s horizon-source/* horizon \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /horizon \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /horizon \ && useradd --user-group horizon \ && mkdir -p /etc/openstack-dashboard /home/horizon \ - && ln -s /etc/openstack-dashboard/local_settings /usr/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.py \ + && ln -s /etc/openstack-dashboard/local_settings /var/lib/kolla/venv/lib/python2.7/site-packages/openstack_dashboard/local/local_settings.py \ && cp -r /horizon/openstack_dashboard/conf/* /etc/openstack-dashboard/ \ && cp /horizon/openstack_dashboard/local/local_settings.py.example /etc/openstack-dashboard/local_settings \ - && cp /horizon/manage.py /usr/bin/manage.py \ - && /usr/bin/python /usr/bin/manage.py collectstatic --noinput --clear \ - && /usr/bin/python /usr/bin/manage.py compress --force \ - && chown -R horizon: /etc/openstack-dashboard /home/horizon /usr/lib/python2.7/site-packages/static + && cp /horizon/manage.py /var/lib/kolla/venv/bin/manage.py \ + && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py collectstatic --noinput --clear \ + && /var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py compress --force \ + && chown -R horizon: /etc/openstack-dashboard /home/horizon /var/lib/kolla/venv/lib/python2.7/site-packages/static {% endif %} diff --git a/docker/ironic/ironic-base/Dockerfile.j2 b/docker/ironic/ironic-base/Dockerfile.j2 index 109afed56..45f1f97cb 100644 --- a/docker/ironic/ironic-base/Dockerfile.j2 +++ b/docker/ironic/ironic-base/Dockerfile.j2 @@ -20,7 +20,7 @@ RUN yum -y install \ ADD ironic-base-archive /ironic-base-source RUN ln -s ironic-base-source/* ironic \ && useradd --user-group ironic \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /ironic \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /ironic \ && mkdir -p /etc/ironic /var/log/ironic /home/ironic \ && cp -r /ironic/etc/ironic/* /etc/ironic/ \ && chown -R ironic: /etc/ironic /var/log/ironic /home/ironic diff --git a/docker/ironic/ironic-discoverd/Dockerfile.j2 b/docker/ironic/ironic-discoverd/Dockerfile.j2 index 536d2b878..bf4817a86 100644 --- a/docker/ironic/ironic-discoverd/Dockerfile.j2 +++ b/docker/ironic/ironic-discoverd/Dockerfile.j2 @@ -4,7 +4,7 @@ MAINTAINER {{ maintainer }} {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} -RUN pip install ironic-discoverd +RUN /var/lib/kolla/venv/bin/pip install ironic-discoverd # discoverd no longer in delorean 9/28/2015, switch to inspector on TODO #RUN yum -y install \ # openstack-ironic-discoverd \ diff --git a/docker/keystone/Dockerfile.j2 b/docker/keystone/Dockerfile.j2 index e3e25f3db..033385ee6 100644 --- a/docker/keystone/Dockerfile.j2 +++ b/docker/keystone/Dockerfile.j2 @@ -38,7 +38,7 @@ RUN apt-get install -y --no-install-recommends \ ADD keystone-archive /keystone-source RUN ln -s keystone-source/* keystone \ && useradd --user-group keystone \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /keystone \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /keystone \ && mkdir -p /etc/keystone /var/www/cgi-bin/keystone /var/log/apache2 /home/keystone \ && cp -r /keystone/etc/* /etc/keystone/ \ && cp /keystone/httpd/keystone.py /var/www/cgi-bin/keystone/admin \ diff --git a/docker/kolla-ansible/Dockerfile.j2 b/docker/kolla-ansible/Dockerfile.j2 index 8d3834662..e25ab520d 100644 --- a/docker/kolla-ansible/Dockerfile.j2 +++ b/docker/kolla-ansible/Dockerfile.j2 @@ -1,23 +1,42 @@ -FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} MAINTAINER {{ maintainer }} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} RUN yum -y install \ gcc \ + git \ libffi-devel \ libxml2-devel \ libxslt-devel \ + mariadb-devel \ + mariadb-libs \ openssl-devel \ python-devel \ openssh-clients \ && yum clean all -RUN pip install -U pip wheel +{% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get -y --no-install-recommends install \ + build-essential \ + ca-certificates \ + git \ + libffi-dev \ + libmariadbclient-dev \ + libssl-dev \ + libxslt1-dev \ + python-dev \ + && apt-get clean {% endif %} -RUN pip --no-cache-dir install \ +RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ + && python get-pip.py \ + && rm get-pip.py \ + && pip install -U wheel \ + && pip --no-cache-dir install \ + MySQL-python \ shade \ pyudev diff --git a/docker/magnum/magnum-base/Dockerfile.j2 b/docker/magnum/magnum-base/Dockerfile.j2 index c9a60dd23..c6307c3dd 100644 --- a/docker/magnum/magnum-base/Dockerfile.j2 +++ b/docker/magnum/magnum-base/Dockerfile.j2 @@ -25,7 +25,7 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ ADD magnum-base-archive /magnum-base-source RUN ln -s magnum-base-source/* magnum \ && useradd --user-group magnum \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /magnum \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /magnum \ && mkdir -p /etc/magnum /var/log/magnum /home/magnum \ && cp -r /magnum/etc/magnum/* /etc/magnum \ && chown -R magnum: /etc/magnum /var/log/magnum /home/magnum diff --git a/docker/murano/murano-base/Dockerfile.j2 b/docker/murano/murano-base/Dockerfile.j2 index cf45bfb37..344c16ad8 100644 --- a/docker/murano/murano-base/Dockerfile.j2 +++ b/docker/murano/murano-base/Dockerfile.j2 @@ -6,7 +6,7 @@ MAINTAINER {{ maintainer }} ADD murano-base-archive /murano-base-source RUN ln -s murano-base-source/* murano \ && useradd --user-group murano \ - && pip --no-cache-dir install /murano \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install /murano \ && mkdir -p /etc/murano /var/log/murano /home/murano \ && cp -r /murano/etc/murano/* /etc/murano/ \ && chown -R murano: /etc/murano /var/log/murano /home/murano diff --git a/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh b/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh index 474b6a0b4..47c2ee160 100755 --- a/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh +++ b/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh @@ -5,7 +5,7 @@ set -o errexit source /var/lib/kolla/config-sudoers.sh # Will be removed when neutron-agents is a thin container -CMD="/usr/bin/neutron-dhcp-agent" +CMD="neutron-dhcp-agent" ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini" exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/neutron-l3-agent/start.sh b/docker/neutron/neutron-agents/neutron-l3-agent/start.sh index 0ba99d1fd..da1b1cc57 100755 --- a/docker/neutron/neutron-agents/neutron-l3-agent/start.sh +++ b/docker/neutron/neutron-agents/neutron-l3-agent/start.sh @@ -5,7 +5,7 @@ set -o errexit source /var/lib/kolla/config-sudoers.sh # Will be removed when this container is broken out into thin containers -CMD="/usr/bin/neutron-l3-agent" +CMD="neutron-l3-agent" ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh b/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh index 8a0b5e938..9464a5196 100755 --- a/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh +++ b/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh @@ -5,7 +5,7 @@ set -o errexit source /var/lib/kolla/config-sudoers.sh # Will be removed when this container is broken out in thin containers -CMD="/usr/bin/neutron-metadata-agent" +CMD="neutron-metadata-agent" ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini" exec $CMD $ARGS diff --git a/docker/neutron/neutron-base/Dockerfile.j2 b/docker/neutron/neutron-base/Dockerfile.j2 index d0c02728a..a13d3114d 100644 --- a/docker/neutron/neutron-base/Dockerfile.j2 +++ b/docker/neutron/neutron-base/Dockerfile.j2 @@ -39,7 +39,7 @@ RUN apt-get install -y --no-install-recommends \ ADD neutron-base-archive /neutron-base-source RUN ln -s neutron-base-source/* neutron \ && useradd --user-group neutron \ - && pip --no-cache-dir install /neutron \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install /neutron \ && mkdir -p /etc/neutron /usr/share/neutron /var/log/neutron /home/neutron \ && cp -r /neutron/etc/* /etc/neutron/ \ && cp -r /neutron/etc/neutron/* /etc/neutron/ \ diff --git a/docker/nova/nova-base/Dockerfile.j2 b/docker/nova/nova-base/Dockerfile.j2 index baeda4025..4b2fea8b4 100644 --- a/docker/nova/nova-base/Dockerfile.j2 +++ b/docker/nova/nova-base/Dockerfile.j2 @@ -36,7 +36,7 @@ RUN apt-get install -y --no-install-recommends \ ADD nova-base-archive /nova-base-source RUN ln -s nova-base-source/* nova \ && useradd --user-group nova \ - && pip --no-cache-dir install /nova \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install /nova \ && mkdir -p /etc/nova /var/log/nova /home/nova \ && cp -r /nova/etc/nova/* /etc/nova/ \ && chown -R nova: /etc/nova /var/log/nova /home/nova diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2 index 41b2e0183..90dd8de2e 100644 --- a/docker/nova/nova-compute/Dockerfile.j2 +++ b/docker/nova/nova-compute/Dockerfile.j2 @@ -15,9 +15,8 @@ RUN yum -y install \ {% elif install_type == 'source' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} -RUN pip uninstall -y requests \ - && yum -y install \ - libvirt-python \ +RUN yum -y install \ + libvirt-devel \ openvswitch \ qemu-img \ sysfsutils \ @@ -27,12 +26,16 @@ RUN pip uninstall -y requests \ {% elif base_distro in ['ubuntu', 'debian'] %} RUN apt-get install -y --no-install-recommends \ + libvirt-dev \ qemu-utils \ ceph-common \ && apt-get clean \ && mkdir -p /etc/ceph {% endif %} + +RUN /var/lib/kolla/venv/bin/pip install --no-cache-dir libvirt-python + {% endif %} {{ include_footer }} diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 1db7eb011..900fc3b4d 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -74,10 +74,13 @@ RUN apt-get install -y --no-install-recommends \ ADD openstack-base-archive /openstack-base-source RUN ln -s openstack-base-source/* /requirements \ + && mkdir /var/lib/kolla \ && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ && python get-pip.py \ && rm get-pip.py \ - && pip --no-cache-dir install -U -c requirements/upper-constraints.txt \ + && pip install -U virtualenv \ + && virtualenv /var/lib/kolla/venv \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -U -c requirements/upper-constraints.txt \ python-barbicanclient \ python-ceilometerclient \ python-congressclient \ @@ -96,5 +99,6 @@ RUN ln -s openstack-base-source/* /requirements \ python-openstackclient \ MySQL-python \ python-memcached +ENV PATH /var/lib/kolla/venv/bin:$PATH {% endif %} diff --git a/docker/swift/swift-base/Dockerfile.j2 b/docker/swift/swift-base/Dockerfile.j2 index e48bcc7f6..d6afb2b24 100644 --- a/docker/swift/swift-base/Dockerfile.j2 +++ b/docker/swift/swift-base/Dockerfile.j2 @@ -13,7 +13,7 @@ RUN yum -y install openstack-swift \ ADD swift-base-archive /swift-base-source RUN ln -s swift-base-source/* swift \ && useradd --user-group swift \ - && pip --no-cache-dir install /swift \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install /swift \ && mkdir -p /etc/swift /var/log/swift /home/swift \ && cp -r /swift/etc/* /etc/swift/ \ && chown -R swift: /etc/swift /var/log/swift /home/swift diff --git a/docker/swift/swift-base/build-swift-ring.py b/docker/swift/swift-base/build-swift-ring.py index d7386392d..af20af7e6 100644 --- a/docker/swift/swift-base/build-swift-ring.py +++ b/docker/swift/swift-base/build-swift-ring.py @@ -67,7 +67,7 @@ def run(args): 'and zones are required') sys.exit(1) - run_cmd(['/usr/bin/swift-ring-builder', + run_cmd(['swift-ring-builder', args.ring_file, 'create', args.part_power, @@ -75,13 +75,13 @@ def run(args): args.min_part_hours]) for i in xrange(len(hosts)): - run_cmd(['/usr/bin/swift-ring-builder', + run_cmd(['swift-ring-builder', args.ring_file, 'add', 'z{}-{}/{}'.format(zones[i], hosts[i], devices[i]), weights[i]]) - run_cmd(['/usr/bin/swift-ring-builder', args.ring_file, 'rebalance']) + run_cmd(['swift-ring-builder', args.ring_file, 'rebalance']) def main(): diff --git a/docker/tempest/Dockerfile.j2 b/docker/tempest/Dockerfile.j2 index f8330f217..d194e25ee 100644 --- a/docker/tempest/Dockerfile.j2 +++ b/docker/tempest/Dockerfile.j2 @@ -13,7 +13,7 @@ RUN yum -y install \ ADD tempest-archive /tempest-source RUN ln -s tempest-source/* tempest \ - && pip --no-cache-dir install -c requirements/upper-constraints.txt /tempest \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install -c requirements/upper-constraints.txt /tempest \ && mkdir -p /etc/tempest /var/log/tempest /etc/tempest/tempest_lock {% endif %} diff --git a/docker/zaqar/Dockerfile.j2 b/docker/zaqar/Dockerfile.j2 index d05881833..796119e57 100644 --- a/docker/zaqar/Dockerfile.j2 +++ b/docker/zaqar/Dockerfile.j2 @@ -13,7 +13,7 @@ RUN yum -y install openstack-zaqar \ ADD zaqar-archive /zaqar-source RUN ln -s zaqar-source/* zaqar \ && useradd --user-group zaqar \ - && pip --no-cache-dir install /zaqar \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install /zaqar \ && mkdir -p /etc/zaqar /var/log/zaqar /home/zaqar \ && cp -r /zaqar/etc/* /etc/zaqar/ \ && chown -R zaqar: /etc/zaqar /var/log/zaqar /home/zaqar -- cgit v1.2.3