chore: import upstream snapshot with attribution
Test Browser Use CLI Install / uv pip install (ubuntu-latest) (push) Failing after 1s
Test Browser Use CLI Install / uvx browser-use from local wheel (push) Failing after 1s
Test Browser Use CLI Install / uvx browser-use[cli] from PyPI (push) Failing after 1s
package / pip-install-on-macos-latest-py-3.11 (push) Has been skipped
package / pip-install-on-macos-latest-py-3.13 (push) Has been skipped
package / pip-install-on-ubuntu-latest-py-3.11 (push) Has been skipped
package / pip-install-on-windows-latest-py-3.13 (push) Has been skipped
cloud_evals / trigger_cloud_eval_image_build (push) Failing after 1s
docker / build_publish_image (push) Failing after 1s
Test Browser Use CLI Install / browser-use skill sync (push) Failing after 1s
lint / code-style (push) Failing after 0s
lint / type-checker (push) Failing after 1s
package / pip-build (push) Failing after 1s
lint / syntax-errors (push) Failing after 3s
package / pip-install-on-ubuntu-latest-py-3.13 (push) Has been skipped
package / pip-install-on-windows-latest-py-3.11 (push) Has been skipped
test / ${{ matrix.test_filename }} (push) Has been skipped
test / evaluate-tasks (push) Has been skipped
test / setup-chromium (push) Failing after 2s
test / find_tests (push) Failing after 2s
Test Browser Use CLI Install / uv pip install (windows-latest) (push) Has been cancelled
Test Browser Use CLI Install / uv pip install (macos-latest) (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:02:32 +08:00
commit 4cd2d4af2b
475 changed files with 121829 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
# Docker Setup for Browser-Use
This directory contains the optimized Docker build system for browser-use, achieving < 30 second builds.
## Quick Start
```bash
# Build base images (only needed once or when dependencies change)
./docker/build-base-images.sh
# Build browser-use
docker build -f Dockerfile.fast -t browseruse .
# Or use the standard Dockerfile (slower but self-contained)
docker build -t browseruse .
```
## Files
- `Dockerfile` - Standard self-contained build (~2 min)
- `Dockerfile.fast` - Fast build using pre-built base images (~30 sec)
- `docker/` - Base image definitions and build script
- `base-images/system/` - Python + minimal system deps
- `base-images/chromium/` - Adds Chromium browser
- `base-images/python-deps/` - Adds Python dependencies
- `build-base-images.sh` - Script to build all base images
## Performance
| Build Type | Time |
|------------|------|
| Standard Dockerfile | ~2 minutes |
| Fast build (with base images) | ~30 seconds |
| Rebuild after code change | ~16 seconds |
+15
View File
@@ -0,0 +1,15 @@
ARG BASE_TAG=latest
FROM browseruse/base-system:${BASE_TAG}
WORKDIR /tmp
COPY pyproject.toml ./
# Install chromium browser using temporary playwright installation
RUN --mount=type=cache,target=/root/.cache,sharing=locked \
echo "Installing chromium browser via temporary playwright..." && \
pip install --no-cache-dir playwright && \
PLAYWRIGHT_BROWSERS_PATH=/opt/playwright playwright install chromium --with-deps --no-shell && \
ln -s /opt/playwright/chromium-*/chrome-linux/chrome /usr/bin/chromium-browser && \
chmod -R 755 /opt/playwright && \
pip uninstall playwright -y && \
rm -f pyproject.toml
+11
View File
@@ -0,0 +1,11 @@
ARG BASE_TAG=latest
FROM browseruse/base-chromium:${BASE_TAG}
ENV PYTHONUNBUFFERED=1 PATH="/app/.venv/bin:$PATH" PLAYWRIGHT_BROWSERS_PATH=/opt/playwright
WORKDIR /app
COPY pyproject.toml uv.lock* ./
RUN --mount=type=cache,target=/root/.cache/uv,sharing=locked \
uv venv && \
uv sync --all-extras --no-dev --no-install-project --compile-bytecode
+10
View File
@@ -0,0 +1,10 @@
FROM python:3.12-slim
# Install minimal system dependencies
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
apt-get update && \
apt-get install -y --no-install-recommends ca-certificates curl wget && \
rm -rf /var/lib/apt/lists/*
# Install uv package manager
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
+58
View File
@@ -0,0 +1,58 @@
#!/bin/bash
# Build script for browser-use base images
set -euo pipefail
# Configuration
REGISTRY="${DOCKER_REGISTRY:-browseruse}"
PLATFORMS="${PLATFORMS:-linux/amd64}"
PUSH="${PUSH:-false}"
# Build function
build_image() {
local name=$1
local dockerfile=$2
local build_args="${3:-}"
echo "[INFO] Building ${name}..."
local build_cmd="docker build"
local tag_args="-t ${REGISTRY}/${name}:latest -t ${REGISTRY}/${name}:$(date +%Y%m%d)"
# Use buildx for multi-platform or push
if [[ "$PLATFORMS" == *","* ]] || [ "$PUSH" = "true" ]; then
build_cmd="docker buildx build --platform=$PLATFORMS"
[ "$PUSH" = "true" ] && build_cmd="$build_cmd --push" || build_cmd="$build_cmd"
fi
$build_cmd $tag_args $build_args -f $dockerfile ..
}
# Main
cd "$(dirname "$0")"
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--push) PUSH=true; shift ;;
--registry) REGISTRY="$2"; shift 2 ;;
--platforms) PLATFORMS="$2"; shift 2 ;;
--help)
echo "Usage: $0 [--push] [--registry REG] [--platforms P]"
exit 0 ;;
*) echo "Unknown option: $1"; exit 1 ;;
esac
done
# Create buildx builder if needed
if [[ "$PLATFORMS" == *","* ]] || [ "$PUSH" = "true" ]; then
docker buildx inspect browseruse-builder >/dev/null 2>&1 || \
docker buildx create --name browseruse-builder --use
docker buildx use browseruse-builder
fi
# Build images in order
build_image "base-system" "base-images/system/Dockerfile"
build_image "base-chromium" "base-images/chromium/Dockerfile" "--build-arg BASE_TAG=latest"
build_image "base-python-deps" "base-images/python-deps/Dockerfile" "--build-arg BASE_TAG=latest"
echo "[INFO] Build complete. Use: FROM ${REGISTRY}/base-python-deps:latest"