MacのDockerコンテナーでOpenStack Keystoneテストを実行する

以下に、OS XのDockerコンテナーでKeystoneテストを実行する方法と、それが必要な理由を説明します。







OpenStackで、主にKeystoneで小さなパッチを書くことがあります。 OS Xを搭載したラップトップでこれを行います。2009年に、LinuxからMacに切り替えました。 後者では、開発するのに劣らず便利であり、他のすべてを行う方がはるかに便利でした。 残念ながら、最近、最初の声明はしばしば誤っていることが判明しました。 たとえば、Appleは非常にゆっくりとシステムオープンソースライブラリの更新を開始しました。これはKeystoneテストに影響を及ぼしました。最初は古いOpenSSLであったため、次にpython-ldapでした。 これについて、たとえば、Keystone PTL Morgan Fainbergが書いています 。 彼は楽観的に始めます



注意:OS Xベースのテスト/ Keystoneの実行は廃止される可能性が高い



あなたはそれと戦うことができますが、喜びはそれではありません。



最初はUbuntuでVMに切り替え、テストの実行に関するすべての問題を取り除きましたが、別の開発環境をセットアップして維持することは避けたいタスクです。 テストのためだけにVMを起動するのは無駄です。 さらに、MacとLunux(シェル、MacVim)の小さな違いは少し面倒でした。 そのため、同じiTerm2のdockerコンテナーでテストを実行し、Macで開発を続けることにしました。 さらに詳しい手順を説明します。



まず、プロジェクトを作成します

$ mkdir ../docker $ cd ../docker $ vim Dockerfile
      
      







Dockerfileの作成

 FROM ubuntu:14.04 MAINTAINER XXX "xxx@gmail.com" RUN apt-get update RUN apt-get install -y python RUN apt-get install -y git RUN apt-get install -y python-setuptools RUN apt-get install -y python-pip RUN pip install virtualenv RUN apt-get install -y gettext RUN apt-get install -y python-dev python3-dev libxml2-dev libxslt1-dev RUN apt-get install -y libsasl2-dev libsqlite3-dev libssl-dev libldap2-dev libffi-dev RUN pip install tox RUN apt-get install -y python-tox
      
      







コンテナを作成します。

 $ docker build -t="hashmap/keystone-dev" .
      
      







取得するもの:

 Sending build context to Docker daemon 2.048 kB Sending build context to Docker daemon Step 0 : FROM ubuntu:14.04 ---> 63e3c10217b8 ... Unpacking python-tox (1.6.0-1ubuntu1) ... Setting up libjs-jquery (1.7.2+dfsg-2ubuntu1) ... Setting up libjs-underscore (1.4.4-2ubuntu1) ... Setting up libjs-sphinxdoc (1.2.2+dfsg-1ubuntu1.1) ... Setting up python-py (1.4.20-1) ... Setting up python-virtualenv (1.11.4-1) ... Setting up python-tox (1.6.0-1ubuntu1) ... ---> 41f003afb987 Removing intermediate container 52fa1fca6272 Successfully built 41f003afb987
      
      







ここで、キーストーンソースを取得します

 $ mkdir -p ~/projects/openstack/ $ cd ~/projects/openstack/ $ git clone https://github.com/openstack/keystone.git
      
      







コンテナを起動します

 $ docker run -it -v ~/projects/openstack/keystone/:/keystone hashmap/keystone-dev
      
      







コンテナ内でセッションを取得します。

 root@ecc4228056af:/# cd /keystone
      
      







venvを構成する必要がある場合

 $ python tools/install_venv.py $ source .venv/bin/activate $ python -c "import keystone"
      
      







エラーが発生していない場合、すべてが構成されます。 データベースを更新することもできます。

 $ root@e29e21a501f0:/keystone# ./.venv/bin/keystone-manage db_sync
      
      







テストを実行します

 $ tox -e py27 ... - Passed: 4254 - Skipped: 1234 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 ... py27: commands succeeded congratulations :)
      
      





これで、時々テスト付きのコンテナを実行できます。 私はそれを測定しませんでしたが、テストの実行がより遅くなることがわかりました。一方、ラップトップのリソースのちょうど半分をテストに与えました。



その結果、現在の状況ではぜいたくな、動作テストを備えたMac開発環境ができました!



PS KDPVが気に入ったら-教えてください、私たちの会社の港湾労働者の少女は次の投稿に表示されます。



All Articles