Hyperledger Sawtooth + Docker - PullRequest
       14

Hyperledger Sawtooth + Docker

1 голос
/ 30 апреля 2020

Я относительно новичок в docker Я создал прототип, используя Hyperledger Sawtooth и Docker Compose Я уже предопределил имя контейнера и добавил его в файл docker -compose.yml. Однако некоторые контейнеры работают гладко, как PostgreSQL рабочий экземпляр, а также оболочка и пользовательский валидатор, но API, TP (процессор транзакций) и подписчик возвращают команду, не найденную из Bash, или такого файла или каталога нет. Я попытался обрезать изображения, запустив их в отдельном файле, и это не проблема брандмауэра или прокси. И я трижды проверил окончания файлов и пути. Я использую Sawtooth Python SDK с консенсусом PoET. Я использую Windows 10 Pro и последние версии Docker. Бэкэнд находится в Python и во внешнем интерфейсе использует webpack и мифрил. js, хотя они были успешно построены. Спасибо заранее и извините, если вопрос немного странный, я все еще плохо знаком с Docker.


version: '2.1'

services:

  wen-rayih-shell:
    build:
      context: .
      dockerfile: ./shell/Dockerfile
    image: sawtooth-wen-rayih-shell
    container_name: wen-rayih-shell
    volumes:
      - .:/project/sawtooth-wen-rayih
      - /project/sawtooth-wen-rayih/tracker_app/node_modules
    command: |
      bash -c "
        wen-rayih-protogen
        cd tracker_app/
        npm run build
        cd ../
        tail -f /dev/null
      "

  wen-rayih-tp:
    build:
        context: .
        dockerfile: ./processor/Dockerfile
    image: sawtooth-wen-rayih-tp
    container_name: wen-rayih-tp
    volumes:
      - '.:/project/sawtooth-wen-rayih'
    depends_on:
      - wen-rayih-shell
    command: |
      bash -c "
        sleep 1
        wen-rayih-tp -v -C tcp://validator:4004
      "

  wen-rayih-rest-api:
    build:
      context: .
      dockerfile: ./rest_api/Dockerfile
    image: wen-rayih-rest-api
    container_name: wen-rayih-rest-api
    volumes:
      - .:/project/sawtooth-wen-rayih
    ports:
      - '8000:8000'
    depends_on:
      - wen-rayih-shell
    command: |
      bash -c "
        wen-rayih-rest-api \
          -B wen-rayih-rest-api:8000 \
          -C validator:4004 \
          --db-host postgres \
          -vv
      "

  wen-rayih-subscriber:
    build:
      context: .
      dockerfile: ./subscriber/Dockerfile
    image: sawtooth-wen-rayih-subscriber
    container_name: wen-rayih-subscriber
    volumes:
      - '.:/project/sawtooth-wen-rayih'
    depends_on:
      - wen-rayih-shell
      - postgres
    command: |
      bash -c "
        wen-rayih-subscriber init \
          --db-host postgres \
          -vv
        sleep 3
        wen-rayih-subscriber subscribe \
          --db-host postgres \
          -C tcp://validator:4004 \
          -vv
      "

  settings-tp:
    image: hyperledger/sawtooth-settings-tp:1.2
    container_name: sawtooth-settings-tp
    depends_on:
      - validator
    entrypoint: settings-tp -vv -C tcp://validator:4004

  rest-api:
    image: hyperledger/sawtooth-rest-api:1.2
    container_name: sawtooth-rest-api
    expose:
      - 8008
    ports:
      - '8008:8008'
    depends_on:
      - validator
    entrypoint: sawtooth-rest-api -vv -C tcp://validator:4004 --bind rest-api:8008

  validator:
    image: hyperledger/sawtooth-validator:1.2
    container_name: sawtooth-validator
    expose:
      - 4004
    ports:
      - '4004:4004'
    command: |
      bash -c "
        if [ ! -f /etc/sawtooth/keys/validator.priv ]; then
          sawadm keygen
          sawtooth keygen my_key
          sawset genesis -k /root/.sawtooth/keys/my_key.priv
          sawset proposal create -k /root/.sawtooth/keys/my_key.priv \
            sawtooth.consensus.algorithm.name=Devmode \
            sawtooth.consensus.algorithm.version=0.1 \
            -o config.batch
          sawadm genesis config-genesis.batch config.batch
        fi;
        sawtooth-validator -vv \
          --endpoint tcp://validator:8800 \
          --bind component:tcp://eth0:4004 \
          --bind network:tcp://eth0:8800 \
          --bind consensus:tcp://eth0:5050
      "

  devmode-engine:
    image: hyperledger/sawtooth-devmode-engine-rust:1.2
    expose:
      - 5050
    ports:
      - '5050:5050'
    container_name: sawtooth-devmode-engine-rust-default
    depends_on:
      - validator
    entrypoint: devmode-engine-rust --connect tcp://validator:5050

  postgres:
    image: postgres:alpine
    container_name: wen-rayih-postgres
    restart: always
    environment:
      POSTGRES_USER: sawtooth
      POSTGRES_PASSWORD: sawtooth
      POSTGRES_DB: wen-rayih
    ports:
      - '5432:5432'

  adminer:
    image: adminer
    container_name: wen-rayih-adminer
    restart: always
    ports:
      - '8080:8080'

  tracker-app:
    build: ./tracker_app
    image: wen-rayih-tracker-app
    container_name: tracker-app
    volumes:
      - ./tracker_app/public/:/usr/local/apache2/htdocs/
    expose:
      - 80
    ports:
      - '8040:80'
    depends_on:
      - wen-rayih-shell
      - wen-rayih-rest-api

...