如何在码头上运行量角器?

时间:2017-02-09 20:37:46

标签: docker protractor docker-compose docker-networking gulp-protractor

我是一个带有docker& amp;的新手量角器所以请耐心等待。

我有一个应用程序,它的后端API使用python和django,而使用量角器的前端和e2e测试使用angular.js。所以这就是我认为我应该继续下去的方式:

  1. 我必须为Python-Django中的后端设置一个docker容器,然后通过一些PORT公开此API。
  2. 为angular.js 前端创建另一个容器(或不确定哪个层)。
  3. 下载量角器的图像并构建容器。
  4. 通过docker network连接所有这些容器层?
  5. 替代

    1. 在本地计算机上运行后端。
    2. 为量角器创建docker容器并以某种方式将e2e测试指向容器?
    3. 请帮助我查看实现此目的的步骤。 This video提供了一些见解,但不确定从哪里开始。

1 个答案:

答案 0 :(得分:1)

你最初的想法是正确的。设置时,我通常使用docker-compose文件,如此...

#docker-compose.yml
version: '2'

services:
  backend:
    build: ./backend
    command: <your django startup command>
  db:
    image: <postgres or whatever>
  frontend:
    build: ./frontend
    command: <npm start or equivalent>
    ports:
      - "80:80"

然后,我会用

运行我的测试
docker-compose run --rm frontend <MY TESTING COMMAND HERE>

Docker-compose为您处理docker网络内容 - 在这种情况下,您的前端将能够在http://backend:访问您的后端。量角器和npm以及所有有趣的东西都安装在你的前端容器中。

你还没有想到的一个主要痛点是量角器需要显示器才能工作 - 它不能像无人机浏览器一样工作,你的码头工人通常不会提供这种浏览器。这个repo是一个如何安装真实浏览器并提供虚假显示的示例,以便它可以在容器中工作...... https://github.com/mark-adams/docker-chromium-xvfb,基本上用一个启动xvfb接口的shell脚本替换chrome启动脚本并将浏览器附加到它。