Martin Blanchard pushed to branch master at BuildGrid / buildgrid
Commits:
- 
a1e42b1f
by Martin Blanchard at 2019-02-25T12:48:25Z
 - 
ac22ef7a
by Martin Blanchard at 2019-02-25T12:48:25Z
 - 
71306b30
by Martin Blanchard at 2019-02-25T12:48:25Z
 
7 changed files:
- Dockerfile
 - + data/bin/.gitignore
 - + data/bin/README
 - data/config/controller.conf
 - data/config/storage.conf
 - docker-compose.yml
 - docs/source/installation.rst
 
Changes:
| ... | ... | @@ -6,7 +6,15 @@ | 
| 6 | 6 | 
 # Builds an image from local sources.
 | 
| 7 | 7 | 
 #
 | 
| 8 | 8 | 
 | 
| 9 | 
-FROM python:3.5-stretch
 | 
|
| 9 | 
+FROM debian:buster
 | 
|
| 10 | 
+  | 
|
| 11 | 
+RUN  [ \
 | 
|
| 12 | 
+"apt-get", "update" ]
 | 
|
| 13 | 
+RUN  [ \
 | 
|
| 14 | 
+"apt-get", "install", "-y", \
 | 
|
| 15 | 
+"python3", "python3-venv", "python3-pip", \
 | 
|
| 16 | 
+"bubblewrap", "fuse3" \
 | 
|
| 17 | 
+]
 | 
|
| 10 | 18 | 
 | 
| 11 | 19 | 
 # Use /app as working directory:
 | 
| 12 | 20 | 
 WORKDIR /app
 | 
| ... | ... | @@ -42,6 +50,9 @@ RUN [ \ | 
| 42 | 50 | 
 # Copy the repo. contents:
 | 
| 43 | 51 | 
 COPY . /app
 | 
| 44 | 52 | 
 | 
| 53 | 
+# Add tools directory to the PATH:
 | 
|
| 54 | 
+ENV PATH=$PATH:/app/tools
 | 
|
| 55 | 
+  | 
|
| 45 | 56 | 
 # Install BuildGrid:
 | 
| 46 | 57 | 
 RUN [ \
 | 
| 47 | 58 | 
 "/app/env/bin/python", "-m", "pip", \
 | 
| 1 | 
+buildbox
 | 
|
| 2 | 
+buildbox-fuse
 | 
|
| 3 | 
+buildbox-run-bubblewrap
 | 
|
| 4 | 
+buildbox-run-hosttools
 | 
|
| 5 | 
+buildbox-run-userchroot
 | 
|
| 6 | 
+buildbox-worker
 | 
| 1 | 
+    ¡FOR LOCAL DEVELOPMENT ONLY!
 | 
|
| 2 | 
+  | 
|
| 3 | 
+This directory is used by BuildGrid's main Docker Compose manifest: it gets
 | 
|
| 4 | 
+bind mounted in worker bot containers and is included in PATH. Place here
 | 
|
| 5 | 
+static binaries of the external tools needed by the bots. Typical use case is
 | 
|
| 6 | 
+to copy here the `buildbox` binary used as a backend by the `buildbox` bot.
 | 
|
| 7 | 
+  | 
|
| 8 | 
+    ¡FOR LOCAL DEVELOPMENT ONLY!
 | 
| ... | ... | @@ -6,7 +6,7 @@ server: | 
| 6 | 6 | 
 description: >
 | 
| 7 | 7 | 
   Docker Compose controller configuration:
 | 
| 8 | 8 | 
     - Unauthenticated plain HTTP at :50051
 | 
| 9 | 
-    - Single instance: local
 | 
|
| 9 | 
+    - Single instance: [unnamed]
 | 
|
| 10 | 10 | 
     - Expects a remote CAS at :50052
 | 
| 11 | 11 | 
     - Hosted services:
 | 
| 12 | 12 | 
        - ActionCache
 | 
| ... | ... | @@ -19,14 +19,14 @@ monitoring: | 
| 19 | 19 | 
   enabled: false
 | 
| 20 | 20 | 
 | 
| 21 | 21 | 
 instances:
 | 
| 22 | 
-  - name: local
 | 
|
| 22 | 
+  - name: ''
 | 
|
| 23 | 23 | 
     description: |
 | 
| 24 | 
-      The unique 'local' instance.
 | 
|
| 24 | 
+      The unique unnamed instance.
 | 
|
| 25 | 25 | 
 | 
| 26 | 26 | 
     storages:
 | 
| 27 | 27 | 
       - !remote-storage &data-store
 | 
| 28 | 28 | 
         url: http://storage:50052
 | 
| 29 | 
-        instance-name: local
 | 
|
| 29 | 
+        instance-name: ''
 | 
|
| 30 | 30 | 
 | 
| 31 | 31 | 
     services:
 | 
| 32 | 32 | 
       - !action-cache &build-cache
 | 
| ... | ... | @@ -6,7 +6,7 @@ server: | 
| 6 | 6 | 
 description: >
 | 
| 7 | 7 | 
   Docker Compose storage configuration:
 | 
| 8 | 8 | 
     - Unauthenticated plain HTTP at :50052
 | 
| 9 | 
-    - Single instance: local
 | 
|
| 9 | 
+    - Single instance: [unnamed]
 | 
|
| 10 | 10 | 
     - On-disk data stored in /var
 | 
| 11 | 11 | 
     - Hosted services:
 | 
| 12 | 12 | 
        - ContentAddressableStorage
 | 
| ... | ... | @@ -19,9 +19,9 @@ monitoring: | 
| 19 | 19 | 
   enabled: false
 | 
| 20 | 20 | 
 | 
| 21 | 21 | 
 instances:
 | 
| 22 | 
-  - name: local
 | 
|
| 22 | 
+  - name: ''
 | 
|
| 23 | 23 | 
     description: |
 | 
| 24 | 
-      The unique 'local' instance.
 | 
|
| 24 | 
+      The unique unnamed instance.
 | 
|
| 25 | 25 | 
 | 
| 26 | 26 | 
     storages:
 | 
| 27 | 27 | 
       - !disk-storage &data-store
 | 
| ... | ... | @@ -58,10 +58,24 @@ services: | 
| 58 | 58 | 
   bots:  # To be scaled horizontaly
 | 
| 59 | 59 | 
     image: buildgrid:local
 | 
| 60 | 60 | 
     command: [
 | 
| 61 | 
-      "bot", "--parent=local",
 | 
|
| 61 | 
+      "bot", "--parent=",
 | 
|
| 62 | 62 | 
       "--remote=http://controller:50051",
 | 
| 63 | 63 | 
       "--remote-cas=http://storage:50052",
 | 
| 64 | 64 | 
       "host-tools"]
 | 
| 65 | 
+    #   "bot", "--parent=",
 | 
|
| 66 | 
+    #   "--remote=http://controller:50051",
 | 
|
| 67 | 
+    #   "--remote-cas=http://storage:50052",
 | 
|
| 68 | 
+    #   "buildbox",
 | 
|
| 69 | 
+    #   "--local-cas", "/var/lib/buildgrid/cache",
 | 
|
| 70 | 
+    #   "--fuse-dir", "/mnt"]
 | 
|
| 71 | 
+    privileged: true
 | 
|
| 72 | 
+    volumes:
 | 
|
| 73 | 
+      - type: volume
 | 
|
| 74 | 
+        source: cache
 | 
|
| 75 | 
+        target: /var/lib/buildgrid/cache
 | 
|
| 76 | 
+      - type: bind
 | 
|
| 77 | 
+        source: ./data/bin
 | 
|
| 78 | 
+        target: /app/tools
 | 
|
| 65 | 79 | 
     depends_on:
 | 
| 66 | 80 | 
       - controller
 | 
| 67 | 81 | 
     networks:
 | 
| ... | ... | @@ -72,4 +86,5 @@ networks: | 
| 72 | 86 | 
   host:
 | 
| 73 | 87 | 
 | 
| 74 | 88 | 
 volumes:
 | 
| 89 | 
+  cache:
 | 
|
| 75 | 90 | 
   data:
 | 
| ... | ... | @@ -168,7 +168,7 @@ Once completed, you can start a minimal grid by running: | 
| 168 | 168 | 
    - An execution and action-cache service available at
 | 
| 169 | 169 | 
      ``http://localhost:50051``.
 | 
| 170 | 170 | 
    - An CAS service available at ``http://localhost:50052``.
 | 
| 171 | 
-   - A single ``local`` instance with one host-tools based worker bot attached.
 | 
|
| 171 | 
+   - A single unnamed instance with one host-tools based worker bot attached.
 | 
|
| 172 | 172 | 
 | 
| 173 | 173 | 
 .. hint::
 | 
| 174 | 174 | 
 | 
