Как запустить Multilogin 6 в контейнере Docker
В этом руководстве мы покажем вам, как настроить и запустить Multilogin 6 внутри контейнера Docker. Docker упрощает развертывание приложений последовательно в различных средах.
Зачем использовать Docker для Multilogin?
Докер позволяет:
- Запускайть Multilogin 6 на любой системе, поддерживающей Docker, включая локальные машины и облачные среды.
- Поддерживать портативность и масштабируемость для нужд автоматизации.
- Использовать режим headless для работы на удаленных хостах.
Прежде чем начать
Убедитесь, что у вас есть:
- Система, которая может запускать Docker (облако, сервер, виртуальная машина или ваш компьютер).
- Учетная запись Docker Hub для загрузки необходимых образов.
- Учетная запись Multilogin 6 для использования приложения внутри вашего контейнера.
Шаг 1: установка Docker
Если у вас еще нет Docker, установите его для своей ОС:
Docker Engine предназначен для работы непосредственно на Linux. Для других операционных систем, таких как Windows или macOS, вам нужно будет использовать Docker Desktop.
Шаг 2: создайте Dockerfile
Для создания контейнера вам понадобится Dockerfile в каталоге вашего проекта. Этот файл настраивает контейнер.
Пример Dockerfile
# Use an official base image with a compatible OS
FROM ubuntu:22.04
# List of basic dependancies
RUN apt-get update && apt-get install -y ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libc6 libcairo2 libcups2 libcurl4 libdbus-1-3 libdrm2 libexpat1 libgbm1 libglib2.0-0 libgtk-4-1 libnspr4 libnss3 libpango-1.0-0 libu2f-udev libvulkan1 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils
# Dependancies to install and launch Multilogin application
RUN apt-get update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y openjdk-18-jre-headless curl unzip openssh-client
# Set environment variables for Multilogin login
ENV ML_USERNAME="your_multilogin_username"
ENV ML_PASSWORD="your_multilogin_password"
# Install Multilogin app
RUN mkdir -p /opt/multilogin/
RUN cd /opt/multilogin/ && \
curl --location --fail --output multiloginapp-linux-x64-client "https://cdn-download.multiloginapp.com/multilogin/6.3.6/multilogin-6.3.6-1-linux_x86_64.zip" && \
unzip multiloginapp-linux-x64-client && \
chmod +x multiloginapp-linux-x64-client && \
rm multiloginapp-linux-x64-client && \
apt-get -y install ./multilogin.deb
# Copy our main run script into workdir
COPY ./run.sh /opt/Multilogin/
# Add permission to execute and run our script
RUN chmod +x /opt/Multilogin/run.sh
CMD bash /opt/Multilogin/run.sh
Особый случай: пользователи M1 Mac
Если вы используете M1 Mac (архитектура arm64), вам потребуется включить экспериментальную функцию Docker Buildx для правильной сборки контейнера.
Шаг 3: обработка учетных данных для входа
Поскольку инструкции Dockerfile CMD не поддерживают параметры входа, вам понадобится файл run.sh
в том же каталоге.
Пример скрипта run.sh
#!/bin/bash
echo "Multilogin account is $ML_USERNAME with password of length ${#ML_PASSWORD}"
cd opt/Multilogin/headless
bash ./cli.sh -login -u "$ML_USERNAME" -p "$ML_PASSWORD"
bash ./headless.sh -port 35000
Храните свои учетные данные в надежном месте, а не кодируйте их в скриптах.
Шаг 4: запуск контейнера Docker
Теперь, когда ваш Dockerfile настроен, пришло время собрать и запустить ваш контейнер.
Постройте Docker-контейнер
Убедитесь, что Docker запущен, затем перейдите в каталог Dockerfile и выполните:
docker build -t multilogin-container .
Запустить контейнер
Чтобы запустить контейнер в вашей среде, используйте:
docker run -d --name multilogin-app -p <host_port>:<container_port> multilogin-container
Замените <host_port>
и <container_port>
на нужные номера портов, чтобы включить доступ запросам HTTP.
Запуск в режиме headless
Multilogin 6 не поддерживает режим headless. Чтобы решить эту проблему, используйте виртуальный дисплей, например, Xvfb
внутри вашего скрипта run.sh
.