File size: 2,618 Bytes
6a7089a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
services:
  # Main instance: security features ENABLED (permissive)
  pinchtab:
    build:
      context: ../..
      dockerfile: Dockerfile
    environment:
      PINCHTAB_CONFIG: /config/pinchtab.json
    volumes:
      - ./config/pinchtab.json:/config/pinchtab.json:ro
      - ./fixtures/test-extension:/extensions/test-extension
      - ./fixtures/test-extension-api:/extensions/test-extension-api
    ports:
      - "9999:9999"
    # Chrome needs more shared memory in Docker
    shm_size: '2gb'
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost:9999/health"]
      interval: 3s
      timeout: 10s
      retries: 20
      start_period: 15s

  # Secure instance: security features DISABLED (restrictive)
  pinchtab-secure:
    build:
      context: ../..
      dockerfile: Dockerfile
    environment:
      PINCHTAB_CONFIG: /config/pinchtab-secure.json
    volumes:
      - ./config/pinchtab-secure.json:/config/pinchtab-secure.json:ro
    ports:
      - "9998:9999"
    shm_size: '2gb'
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost:9999/health"]
      interval: 3s
      timeout: 10s
      retries: 20
      start_period: 15s

  # Lite engine instance: no Chrome, DOM-only (bridge mode)
  pinchtab-lite:
    build:
      context: ../..
      dockerfile: Dockerfile
    environment:
      PINCHTAB_CONFIG: /config/pinchtab-lite.json
    volumes:
      - ./config/pinchtab-lite.json:/config/pinchtab-lite.json:ro
    ports:
      - "9997:9999"
    command: ["/usr/local/bin/pinchtab", "bridge"]
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost:9999/health"]
      interval: 3s
      timeout: 10s
      retries: 20
      start_period: 15s

  fixtures:
    image: nginx:alpine
    volumes:
      - ./fixtures:/usr/share/nginx/html:ro
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost:80/"]
      interval: 2s
      timeout: 5s
      retries: 5

  runner:
    build:
      context: ./runner
    depends_on:
      pinchtab:
        condition: service_healthy
      pinchtab-secure:
        condition: service_healthy
      pinchtab-lite:
        condition: service_healthy
      fixtures:
        condition: service_healthy
    environment:
      - E2E_SERVER=http://pinchtab:9999
      - E2E_SECURE_SERVER=http://pinchtab-secure:9999
      - E2E_LITE_SERVER=http://pinchtab-lite:9999
      - FIXTURES_URL=http://fixtures:80
    volumes:
      - ./scenarios:/scenarios:ro
      - ./scenarios-recent:/scenarios-recent:ro
      - ./results:/results
    command: ["/scenarios/run-all.sh"]