Главная
Главная Руководства Docker › Запускаем Selenium контейнеры с браузерами под docker.



Автор:

Статья опубликована: 2017-07-01 21:55:17
Последние правки: 2019-07-17 19:58:10

Запускаем контейнеры с standalone-браузерами от Selenium. Так как у меня на сервере стоит FreeBSD, то я запускал docker в виртуалке под virtualbox. В качестве гостевой ОС я использовал Unubtu 18.04, для работы 4-х контейнеров chrome, chrome-debug, firefox, firefox-debug необходим жесткий диск на 10 гигабайт.

  • Качаем образы:
    $ docker pull selenium/standalone-chrome
    $ docker pull selenium/standalone-chrome-debug
    $ docker pull selenium/standalone-firefox
    $ docker pull selenium/standalone-firefox-debug
    
    $ docker images
    REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
    selenium/standalone-chrome          latest              f29f963d1b0f        3 weeks ago         907MB
    selenium/standalone-firefox-debug   latest              b6df5e4c5a55        7 weeks ago         765MB
    selenium/standalone-chrome-debug    latest              0f0a9e89d814        7 weeks ago         908MB
    selenium/standalone-firefox         latest              4fe4dfc3e224        7 weeks ago         741MB
    


  • Запускаем:
    $ docker run -d -p 32000:4444 -p 32001:5900 --name firefox_debug selenium/standalone-firefox-debug
    $ docker run -d -p 32002:4444 --name firefox selenium/standalone-firefox
    $ docker run -d -p 32004:4444 -p 32005:5900 --name chrome_debug selenium/standalone-chrome-debug
    $ docker run -d -p 32006:4444 --name chrome selenium/standalone-chrome
    
    Проверяем:
    $ docker ps -a
    CONTAINER ID   IMAGE                               COMMAND      CREATED       STATUS      PORTS                                              NAMES
    4b642adc5bb3   selenium/standalone-chrome          "/opt/bi…"   2 weeks ago   Up 8 days   0.0.0.0:32006->4444/tcp                            chrome
    784a1dc13035   selenium/standalone-chrome-debug    "/opt/bi…"   2 weeks ago   Up 8 days   0.0.0.0:32004->4444/tcp, 0.0.0.0:32005->5900/tcp   chrome_debug
    237a660987f8   selenium/standalone-firefox         "/opt/bi…"   3 weeks ago   Up 8 days   0.0.0.0:32002->4444/tcp                            firefox
    15946a4c8c01   selenium/standalone-firefox-debug   "/opt/bi…"   3 weeks ago   Up 8 days   0.0.0.0:32000->4444/tcp, 0.0.0.0:32001->5900/tcp   firefox_debug
    
    - порт 4444 : для управления браузером, а также консоль. Из контейнеров перенаправлены на порты 32000, 32002, 32004, 32006
    - порт 5900 : для подключения по vnc к debug-версиям (пароль по умолчанию: secret), чтобы видеть окно браузера. Перенаправление на 32001, 32005


  • Работа:
    В дальнейшем, можно останавливать и запускать контейнеры, используя их имена:
    $ docker stop firefox_debug
    $ docker start firefox_debug
    


  • Автозапуск контейнеров
    Создаем файл /etc/systemd/system/dockerc.service, записываем в него:
    [Unit]
    Description=Docker Containers Autostart
    Requires=docker.service
    After=docker.service
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/docker start chrome chrome_debug firefox firefox_debug
    ExecStop=/usr/bin/docker stop -t 2 chrome chrome_debug firefox firefox_debug
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
    
    и включаем автозагрузку:
    # systemctl daemon-reload
    # systemctl enable dockerc
    


  • Обновление контейнеров
    Без удаления контейнера не получится, поэтому:
    - останавливаем и удаляем контейнер:
    $ docker stop firefox_debug
    $ docker rm firefox_debug
    
    - удаляем текущий образ:
    $ docker images
    REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
    selenium/standalone-firefox-debug    latest              c4ed27d75bea        26 days ago         XXXMB
    $ docker rmi selenium/standalone-firefox-debug
    
    - качаем новый образ
    $ docker pull selenium/standalone-firefox-debug
    
    - создаем новый контейнер с теми же параметрами:
    $ docker run -d -p 32000:4444 -p 32001:5900 --name firefox_debug selenium/standalone-firefox-debug