Tópicos populares: Multilogin X, Multilogin 6,
Executando Multilogin 6 em um contêiner Docker
Índice
Neste artigo, cobrimos o processo de criação e lançamento da versão mais recente do Multilogin 6 dentro de um contêiner Docker. O Docker permite que você empacote e implante seu aplicativo de forma consistente e portátil, facilitando o gerenciamento em diferentes ambientes.
Seguindo os passos descritos aqui, você pode usar o Docker para executar Multilogin 6 em sua máquina local, em um ambiente de nuvem ou em qualquer sistema que suporte o Docker, fornecendo flexibilidade e escalabilidade para suas necessidades de automação da web. Multilogin 6 suporta execução em modo headless e pode ser executado em hosts remotos.
Antes de começar
Antes de seguir as instruções deste artigo, certifique-se de ter:
- Uma configuração que permite criar e executar contêineres Docker: pode ser um serviço de nuvem, um servidor, uma máquina virtual ou simplesmente seu próprio computador com o Docker instalado
- Uma conta Docker Hub para baixar as imagens necessárias para construir seu contêiner (por exemplo, uma distribuição Linux)
- Uma conta Multilogin 6 para usar o aplicativo no seu contêiner
Etapa 1: Instalando o Docker
Se você ainda não instalou o Docker, pode fazê-lo seguindo o guia de instalação oficial do seu sistema operacional:
O Docker Engine foi projetado para rodar diretamente no Linux. Para outros sistemas operacionais como Windows ou macOS você precisará usar o Docker Desktop.
Etapa 2: Construindo um contêiner Docker
Para construir um contêiner Docker, você precisará de um Dockerfile no diretório do seu projeto. Este arquivo define a configuração do seu contêiner. Aqui está um exemplo de 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
Além disso, você precisará de um arquivo run.sh colocado no mesmo diretório que seu Dockerfile. Este arquivo é necessário para executar Multilogin 6 com parâmetros de login porque as instruções CMD do Dockerfile não os suportam:
#!/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
O lançamento de perfis no modo headless não é suportado no Multilogin 6, então você precisará implementar uma solução alternativa usando displays virtuais como Xvfb
ou outros utilitários Linux. Você pode incluir essas configurações no seu script bash run.sh para fazê-lo funcionar.
Etapa 3: Executando um contêiner Docker
Para criar um contêiner Docker, certifique-se de que seu daemon Docker esteja em execução e execute o seguinte comando no diretório que contém seu Dockerfile:
docker build -t multilogin-container .
Para executá-lo em seu ambiente preferido, use o seguinte comando:
docker run -d --name multilogin-app -p <host_port>:<container_port> multilogin-container
Especifique portas para vincular seu host e o contêiner do Docker para acesso de solicitação HTTP.
Para construir um contêiner Docker Multilogin 6 com a versão linux-amd64 em um Mac M1 (arquitetura arm64), você precisará do recurso experimental Docker buildx. Encontre instruções detalhadas sobre como habilitá-lo aqui.