Есть необходимость запускать тестовые скрипты. На серваке установил docker и ansible. Цель - запускать через Jenkins на этом серваке контейнеры и в одном из них скрипты, но я пока остановился на схеме без Jenkins, потому что уже есть некоторые вопросы.
Написал playbook, который запускает три контейнера - selenium, chromedriver (безголовый браузер) и nightwatch (node.js и, если это важно, он является ENTRYPOINT). Контейнеры запускаются, но команда (command) внутри nightwatch не выполняется/не запускается даже. Вот playbook:
- name: Docker-compose
hosts: localhost
connection: local
gather_facts: no
tasks:
- name: Start selenium hub
docker_container:
name: hub
image: localhost/tests/selenium:latest
state: started
restart: yes
ports:
- "4444:4444"
- name: Start chromedriver
docker_container:
name: chromedriver
image: localhost/tests/chromedriver:latest
state: started
restart: yes
links:
- "hub:hub"
env:
VNC_ENABLED: true
EXPOSE_X11: true
ports:
- "5900:5900"
- name: Start nightwatch
docker_container:
name: nightwatch
image: localhost/tests/nightwatch:latest
# init: yes
state: started
env:
WAIT_FOR_HOSTS: chromedriver:4444
volumes: ./test:/home/node
command: nightwatch --test run/test-google.js
В папке test (которая становится общей для ОС и контейнера) есть папка run, где и лежат скрипты. Запускал playbook с ключами -vvv, но никаких явных ошибок, говорящих что-либо о запуске команды в контейнере не видно. Вот файл nightwatch.json:
{
"globals_path": "globals.js",
"output_folder": "reports",
"src_folders": ["run"],
"test_settings": {
"default": {
"selenium_host" : "chromedriver",
"screenshots": {
"enabled": true,
"on_failure": true,
"on_error" : false,
"path": "screenshots"
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true,
"cssSelectorsEnabled": true
}
},
"google" : {
"launch_url" : "http://www.google.ru",
"filter" : "*-google.js"
}
}
}
Есть ли те, кто может помочь или направить на путь истинный?
ansible, docker, node.js, selenium