Cách chạy Multilogin 6 trong Docker container
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách thiết lập và khởi chạy Multilogin 6 bên trong Docker container. Docker giúp triển khai ứng dụng một cách dễ dàng trên nhiều môi trường khác nhau.
Tại sao nên sử dụng Docker cho Multilogin ?
Docker cho phép bạn:
- Chạy Multilogin 6 trên bất kỳ hệ thống nào hỗ trợ Docker, bao gồm máy cục bộ và môi trường đám mây
- Duy trì tính di động và khả năng mở rộng cho nhu cầu tự động hóa
- Sử dụng chế độ headless để chạy trên máy chủ từ xa
Trước khi bạn bắt đầu
Hãy đảm bảo bạn có:
- Một hệ thống có thể chạy Docker (đám mây, máy chủ, VM hoặc máy tính của bạn)
- Tài khoản Docker Hub để tải xuống hình ảnh cần thiết
- Tài khoản Multilogin 6 để sử dụng ứng dụng bên trong vùng chứa của bạn
Bước 1: cài đặt Docker
Nếu bạn chưa có Docker, hãy cài đặt nó cho hệ điều hành của bạn:
Docker Engine được thiết kế để chạy trực tiếp trên Linux . Đối với các hệ điều hành khác như Windows hoặc macOS bạn sẽ cần sử dụng Docker Desktop.
Bước 2: xây dựng Dockerfile
Để tạo một container, bạn sẽ cần một Dockerfile trong thư mục dự án của mình. Tệp này sẽ cấu hình container.
Ví dụ 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
Trường hợp đặc biệt: Người dùng máy Mac M1
Nếu bạn đang sử dụng máy Mac M1 (kiến trúc arm64) , bạn sẽ cần bật tính năng thử nghiệm Docker Buildx để xây dựng container đúng cách.
Bước 3: xử lý thông tin đăng nhập
Vì lệnh CMD của Dockerfile không hỗ trợ tham số đăng nhập nên bạn cần có tệp run.sh
trong cùng thư mục.
Ví dụ tập lệnh 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
Lưu trữ thông tin đăng nhập của bạn một cách an toàn thay vì mã hóa cứng chúng trong các tập lệnh.
Bước 4: chạy một container Docker
Bây giờ Dockerfile của bạn đã được thiết lập, đã đến lúc xây dựng và chạy container.
Xây dựng container Docker
Đảm bảo rằng daemon Docker của bạn đang chạy, sau đó điều hướng đến thư mục Dockerfile và chạy:
docker build -t multilogin-container .
Chạy container
Để khởi động container trong môi trường của bạn, hãy sử dụng:
docker run -d --name multilogin-app -p <host_port>:<container_port> multilogin-container
Thay thế <host_port>
và <container_port>
bằng số cổng mong muốn để cho phép truy cập yêu cầu HTTP .
Chạy ở chế độ headless
Multilogin 6 không hỗ trợ chế độ headless gốc. Để giải quyết vấn đề này, hãy sử dụng màn hình ảo như Xvfb
bên trong tập lệnh run.sh
của bạn.