LiberTEM/LiberTEM

View on GitHub
packaging/docker/docker-compose.yml

Summary

Maintainability
Test Coverage
version: "3.4"

services:
  scheduler:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
    ports:
      - "8786:8786"
#      - "8787:8787"
    image: libertem/libertem:triage
    command: ["/venv/bin/dask-scheduler"]
  worker-1:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
    hostname: worker-1
    image: libertem/libertem:triage
    command: ["/venv/bin/libertem-worker", "tcp://scheduler:8786", "--n-cpus", "2", "--cudas", ""]
    volumes:
      - type: bind
        source: ../../data
        target: /data
    depends_on:
      - scheduler
  worker-2:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
    hostname: worker-2
    image: libertem/libertem:triage
    command: ["/venv/bin/libertem-worker", "tcp://scheduler:8786", "--n-cpus", "2", "--cudas", ""]
    volumes:
      - type: bind
        source: ../../data
        target: /data
    depends_on:
      - scheduler
  ipy-controller:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
      args:
        dev: 1
    hostname: ipy-controller
    image: libertem/libertem-dev
    command: ["/venv/bin/ipcontroller", "--ip='*'"]
    volumes:
      - ipyconfig:/root/.ipython/
  ipy-worker-1:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
      args:
        dev: 1
    hostname: ipy-worker-1
    image: libertem/libertem-dev
    command: ["/venv/bin/ipengine", "/parallelconfig/profile_default/security/ipcontroller-client.json"]
    volumes:
      - ipyconfig:/root/.ipython/
      - type: bind
        source: ../../data
        target: /data
    depends_on:
      - scheduler
  ipy-worker-2:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
      args:
        dev: 1
    hostname: ipy-worker-2
    image: libertem/libertem-dev
    command: ["/venv/bin/ipengine", "/parallelconfig/profile_default/security/ipcontroller-client.json"]
    volumes:
      - ipyconfig:/root/.ipython/
      - type: bind
        source: ../../data
        target: /data
    depends_on:
      - scheduler
  tests:
    build:
      context: ../../
      dockerfile: packaging/docker/Dockerfile
      args:
        dev: 1
    hostname: tests
    image: libertem/libertem-dev
    working_dir: /code/
    environment:
      - DASK_SCHEDULER_ADDRESS=tcp://scheduler:8786
      - TESTDATA_BASE_PATH=/data/
    command: ["/venv/bin/pytest", "tests/", "-m", "dist"]
    volumes:
      - ipyconfig:/root/.ipython/
      - type: bind
        source: ../../data
        target: /data
    depends_on:
      - scheduler
      - worker-1
      - worker-2
      - ipy-controller
      - ipy-worker-1
      - ipy-worker-2

volumes:
  ipyconfig: