refactor(docker): update Dockerfile and browser strategy to use Chromium

This commit is contained in:
UncleCode
2025-03-28 15:59:02 +08:00
parent c635f6b9a2
commit 64f20ab44a
4 changed files with 13 additions and 9 deletions

View File

@@ -9,11 +9,15 @@
freetype \
harfbuzz \
ca-certificates \
ttf-freefont && \
ttf-freefont \
socat \
curl && \
addgroup -S chromium && adduser -S chromium -G chromium && \
mkdir -p /data && chown chromium:chromium /data && \
rm -rf /var/cache/apk/*
ENV PATH="/usr/bin:/bin:/usr/sbin:/sbin"
# Switch to a non-root user for security
USER chromium
WORKDIR /home/chromium

View File

@@ -501,7 +501,7 @@ class DockerUtils:
bool: True if Chrome started successfully, False otherwise
"""
# Build Chrome command
chrome_cmd = ["google-chrome"]
chrome_cmd = ["chromium"]
chrome_cmd.extend(browser_args)
returncode, _, stderr = await self.exec_in_container(

View File

@@ -14,13 +14,13 @@ from ...async_configs import BrowserConfig
from ..models import DockerConfig
from ..docker_registry import DockerRegistry
from ..docker_utils import DockerUtils
from .builtin import BuiltinBrowserStrategy
from .builtin import CDPBrowserStrategy
class DockerBrowserStrategy(BuiltinBrowserStrategy):
class DockerBrowserStrategy(CDPBrowserStrategy):
"""Docker-based browser strategy.
Extends the BuiltinBrowserStrategy to run browsers in Docker containers.
Extends the CDPBrowserStrategy to run browsers in Docker containers.
Supports two modes:
1. "connect" - Uses a Docker image with Chrome already running
2. "launch" - Starts Chrome within the container with custom settings
@@ -342,7 +342,7 @@ class DockerBrowserStrategy(BuiltinBrowserStrategy):
# Get PIDs for later cleanup
self.chrome_process_id = await self.docker_utils.get_process_id_in_container(
container_id, "chrome"
container_id, "chromium"
)
self.socat_process_id = await self.docker_utils.get_process_id_in_container(
container_id, "socat"
@@ -396,7 +396,7 @@ class DockerBrowserStrategy(BuiltinBrowserStrategy):
if self.config.light_mode:
# Import here to avoid circular import
from .utils import get_browser_disable_options
from ..utils import get_browser_disable_options
args.extend(get_browser_disable_options())
if self.config.user_data_dir:

View File

@@ -615,8 +615,8 @@ async def run_tests():
# Run browser tests
# results.append(await test_docker_connect_mode())
results.append(await test_docker_launch_mode())
results.append(await test_docker_persistent_storage())
# results.append(await test_docker_launch_mode())
# results.append(await test_docker_persistent_storage())
results.append(await test_docker_parallel_pages())
results.append(await test_docker_registry_reuse())