File size: 2,193 Bytes
dc89ab8
 
e919aa3
258f7cd
 
 
dc89ab8
e919aa3
 
f1ab0d5
e919aa3
 
 
f1ab0d5
e919aa3
f1ab0d5
258f7cd
e919aa3
 
 
 
 
5a84a2a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e919aa3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dc89ab8
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
version: "3.9"  # optional since v1.27.0
services:
  python:
    build:
      dockerfile: Dockerfile.python
      context: .
    environment:
       GECKO_HOST: geckodriver
       GECKO_PORT: 4444
    depends_on:
      - "geckodriver"
    links:
      - "geckodriver"
    volumes:
      - "./python:/app/python:z" # for debugging
      - "./data:/app/data:z"

  geckodriver:
    image: docker.io/instrumentisto/geckodriver
    entrypoint: ["sh", "-c", "while true; do geckodriver --binary=/opt/firefox/firefox --log warn --port 4444 --host 0.0.0.0; sleep 2; done"]
    ports: # this is not required but nice for local debug
      - "4444:4444"

  browserless:
      image: docker.io/zenika/alpine-chrome
      entrypoint: ["sh", "-c", "while true; do chromium-browser --headless --use-gl=swiftshader --disable-software-rasterizer --disable-dev-shm-usage --no-sandbox --remote-debugging-address=0.0.0.0 --remote-debugging-port=3000; sleep 2; done"]
      ports:
        - "3000:3000"

  puppet:
    build:
      dockerfile: Dockerfile.deno
      context: .
    links:
      - browserless
    environment:
      BROWSERLESS_HOST: browserless
      BROWSERLESS_PORT: 3000
      DEBUG: "puppet"
    depends_on:
      - "browserless"
    command: "sh -c 'while echo 🦕 deno waiting; do sleep 3h; done'" # debug
    #command: "deno run --allow-net --allow-env --allow-read --allow-write src/index.ts"
    volumes:
       - "./deno:/app/src:z" # for debugging
       - "./data:/app/data:z"
    #restart: unless-stopped:600
    deploy:
      restart_policy:
        condition: any
        delay: 600s
        window: 300s


  # crawler:
  #   build:
  #     dockerfile: Dockerfile.python
  #     context: .
  #   command: "sh -c 'while true; do python3 src/get_entities.py; touch data/entities.csv; sleep 24h; done'"
  #   volumes:
  #     - "./data:/app/data:z"

  # cutter:
  #   build:
  #     dockerfile: Dockerfile.python
  #     context: .
  #   environment:
  #      GECKO_HOST: geckodriver
  #      GECKO_PORT: 4444
  #   depends_on:
  #     - "geckodriver"
  #   links:
  #     - "geckodriver"
  #   volumes:
  #     - "./python:/app/src:z" # for debugging
  #     - "./data:/app/data:z"