Corda Dockerform Gradle Task не работает должным образом - PullRequest
0 голосов
/ 03 июля 2019

У меня есть следующая простая задача gradle, которую я создал на основе найденной информации здесь .

У меня есть следующая задача gral:

    task prepareDockerNodes(type: net.corda.plugins.Dockerform, dependsOn: ['jar']) {
    nodeDefaults{
        cordapp project(':tcw-contracts-states')
        cordapp project(':tcw-cordapp')
    }
    node {
        name "O=Notary Service,L=Zurich,C=CH"
        notary = [validating : false]
        rpcUsers = rpcUsersList
        useTestClock true
    }
    node {
        name "O=Bank A,L=London,C=GB"
        rpcUsers = rpcUsersList
        useTestClock true
    }
    node {
        name "O=Bank B,L=New York,C=US"
        rpcUsers = rpcUsersList
        useTestClock true
    }
}

, нокогда я запускаю его, я получаю следующую ошибку:

No configuration setting found for key 'p2pAddress'

, чем я добавляю p2pAddress "localhost" ко всем узлам, но после этого я начинаю получать эту ошибку:

File 'build/nodes/docker-compose.yml' specified for property 'dockerComposePath' does not exist.

можете ли выпожалуйста, помогите мне выполнить задачу или приведите рабочий пример, чтобы оштрафовать себя?

1 Ответ

1 голос
/ 04 июля 2019

Вы довольно близки.

Сначала убедитесь, что вы запустили ./gradlew deployNodes, чтобы структура папок узла и файлы были сгенерированы

Следующее задание dockerform в вашей сборке.gradle должен выглядеть примерно так:

task prepareDockerNodes(type: net.corda.plugins.Dockerform, dependsOn: ['jar']) {
    nodeDefaults {
        cordapp project(":contracts-java")
    }
    node {
        name "O=Notary,L=London,C=GB"
        notary = [validating : false]
        p2pPort 10002
        rpcSettings {
            address("localhost:10003")
            adminAddress("localhost:10023")
        }
        projectCordapp {
            deploy = false
        }
        cordapps.clear()
    }
    node {
        name "O=PartyA,L=London,C=GB"
        p2pPort 10002
        rpcSettings {
            address("localhost:10003")
            adminAddress("localhost:10023")
        }
        rpcUsers = [[user: "user1", "password": "test", "permissions": ["ALL"]]]
    }
    node {
        name "O=PartyB,L=New York,C=US"
        p2pPort 10002
        rpcSettings {
            address("localhost:10003")
            adminAddress("localhost:10023")
        }
        rpcUsers = [[user: "user1", "password": "test", "permissions": ["ALL"]]]
    }
}

После завершения deployNodes создайте пустой файл docker-compose.yml, чтобы обойти полученную ошибку: touch workflows-java/build/nodes/docker-compose.yml

Затем выможет работать ./gradlew prepareDockerNodes.Как только это будет сделано, отредактируйте сгенерированный файл docker-compose.yml, чтобы изменить порты:

version: '3'
services:
  notary:
    build: /Users/chrischabot/Projects/json-cordapp/workflows-java/build/nodes/Notary
    ports:
      - "10002"
      - "10003"
  partya:
    build: /Users/chrischabot/Projects/json-cordapp/workflows-java/build/nodes/PartyA
    ports:
      - "10002"
      - "10003"
  partyb:
    build: /Users/chrischabot/Projects/json-cordapp/workflows-java/build/nodes/PartyB
    ports:
    - "10002"
    - "10003"

И у вас снова должна быть рабочая ситуация

...