Вот как работает гипер-книга. 1) Ваш код Java будет gradle project., И когда вы запускаете 'install' в контейнере 'cli', тогда код просто копируется в указанное место. 2) Следующим шагом будет создание экземпляра. На этом этапе фактически запускается «сборка градиента» и начинается загрузка всех зависимостей.
Чтобы ускорить это, сначала запустите работу «сборки градиента» на вашем компьютере. Это приведет к тому, что все зависимости будут загружены в вашу папку ~ / .gradle. Теперь скопируйте эту папку в образ 'hyperledger / fabri c -javaenv' docker, т.е. мы копируем все зависимости с вашего локального диска в образ. Таким образом можно избежать загрузки из контейнера docker.
EDIT: Надеюсь, вы клонировали код fabri c samples. После этого go в следующем месте. Именно этот код устанавливается и реализуется из контейнера cli в одноранговые узлы.
C:\sw\hlf146-2\fabric-samples\fabcar\java
Теперь выполните сборку gradle. Если у вас есть inte rnet accessa и нет проблем, связанных с прокси, ваша сборка должна быть успешной.
C:\sw\hlf146-2\fabric-samples\fabcar\java>gradle build
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.3/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing
> Task :buildEnvironment
------------------------------------------------------------
Root project
------------------------------------------------------------
classpath
No dependencies
A web-based, searchable dependency report is available by adding the --scan option.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 16s
1 actionable task: 1 executed
В случае успеха сборка gradle загрузила бы все зависимости в следующую папку
c:\users\your-user-name\.gradle
Надеюсь, вы уже загрузили изображения fabri c на свой компьютер. Не беспокойтесь о размерах изображений fabri c в моем выводе ниже. Я шутил, и вы видите, что некоторые изображения «огромны», например, 4,58 ГБ. Также игнорируйте изображения "dev-peerX.orgX" ниже. К тому времени, когда вы получите сеть UP, они будут созданы.
C:\sw\hlf146-2\fabric-samples\fabcar\java>docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
dev-peer0.org2.example.com-fabcar-1.0-264b0a1cb5efbecaac5cf8990339c24474dc8435c6e10f10f2be565d555d0e94 latest 32aca2e8365e 4 hours ago 4.58GB
dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba latest 89f8611e67f7 4 hours ago 4.58GB
hyperledger/fabric-javaenv 1.4 190c5452a677 22 hours ago 4.56GB
hyperledger/fabric-ccenv 1.4 774f228847d4 36 hours ago 1.79GB
openjdk latest 0ce6496aae74 6 weeks ago 497MB
hyperledger/fabric-ca 1.4 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-ca 1.4.6 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-ca latest 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-tools 1.4.6 0f9743ac0662 3 months ago 1.49GB
hyperledger/fabric-tools latest 0f9743ac0662 3 months ago 1.49GB
hyperledger/fabric-orderer 1.4 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-orderer 1.4.6 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-orderer latest 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-peer 1.4 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-peer 1.4.6 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-peer latest 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-zookeeper 0.4 ede9389347db 7 months ago 276MB
hyperledger/fabric-zookeeper 0.4.18 ede9389347db 7 months ago 276MB
hyperledger/fabric-zookeeper latest ede9389347db 7 months ago 276MB
hyperledger/fabric-kafka 0.4 caaae0474ef2 7 months ago 270MB
hyperledger/fabric-kafka 0.4.18 caaae0474ef2 7 months ago 270MB
hyperledger/fabric-kafka latest caaae0474ef2 7 months ago 270MB
hyperledger/fabric-couchdb 0.4 d369d4eaa0fd 7 months ago 261MB
hyperledger/fabric-couchdb 0.4.18 d369d4eaa0fd 7 months ago 261MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 7 months ago 261MB
Теперь в приведенном выше списке изображений это изображение 'hyperledger / fabri c -javaenv', которое будет использоваться HLF для скомпилируйте свой цепной код из контейнера cli. Именно этот образ мы хотели бы обогатить зависимостями 'c: \ users \ your-user-name.gradle' от вашей машины. Кроме того, на момент написания этой статьи изображение 'hyperledger / fabri c -javaenv' использовало версию Gradle 4.5, и я хотел использовать последнюю версию Gradle. Итак, я также скопировал gradle 6.3 (хотя Gradle 6.4 был последним на момент написания этой статьи) тоже в изображение 'hyperledger / fabri c -javaenv'.
Итак, для этого в новой папке поместите в него файл с именем «Dockerfile» (без расширения файла) со следующим содержимым (с этого момента я предполагаю, что у вас будут некоторые знания о docker, в противном случае вам следует остановиться здесь. Изучите некоторые основы Docker и продолжайте отсюда).
FROM hyperledger/fabric-javaenv:1.4
RUN rm -rf /root/.gradle
RUN rm -rf /opt/gradle
ADD ./gradle.zip /opt/
RUN unzip -o /opt/gradle.zip -d /opt/
ADD ./.gradle.zip /root/.gradle/
RUN unzip -o /root/.gradle/.gradle.zip -d /root/.gradle
ENV PATH="/opt/gradle/gradle-6.3/bin:${PATH}"
ENV GRADLE_HOME="opt/gradle/gradle-6.3"
RUN chmod 777 /opt/gradle/gradle-6.3/bin/*
ENV JAVA_HOME="/opt/java/openjdk"
Теперь заархивируйте c: \ users \ your-user-name.gradle содержимое папки (а не саму папку) как '.gradle.zip' и поместите это в указанной выше папке. Затем также поместите gradle.zip (это будет загруженное программное обеспечение gradle, и когда вы разархивируете этот gradle.zip, он должен иметь в нем gradle-6.3, и в нем будет все программное обеспечение Gradle. Вы можете отредактировать выше 'Dockerfile', чтобы иметь в противном случае правильно).
Поскольку я запускаю все это на windows, на моем компьютере установлен «docker рабочий стол», и я также выбрал «переключиться на linux контейнеры». Если у вас нет этого программного обеспечения, вам необходимо установить его. Опять же, предполагая, что вы не находитесь за прокси-сервером, у вас не будет всех этих проблем, связанных с прокси, и все должно быть гладко для установки Docker.
Затем нам нужно 'построить' образ docker, используя выше 'Dockerfile'.
Microsoft Windows [Version 10.0.17763.1217]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\sw\hlf-scripts\javaenv-image-2>dir
Volume in drive C is Windows
Volume Serial Number is AE8A-E101
Directory of C:\sw\hlf-scripts\javaenv-image-2
02-06-2020 00:20 <DIR> .
02-06-2020 00:20 <DIR> ..
02-06-2020 00:19 68,813,513 .gradle.zip
01-06-2020 21:21 412 Dockerfile
01-06-2020 17:15 101,876,236 gradle.zip
C:\sw\hlf-scripts\javaenv-image-2>docker build .
Sending build context to Docker daemon 170.7MB
Step 1/11 : FROM hyperledger/fabric-javaenv:1.4
---> 190c5452a677
Step 2/11 : RUN rm -rf /root/.gradle
---> Running in 1bee6799c989
Removing intermediate container 1bee6799c989
---> e80c78e7f151
Step 3/11 : RUN rm -rf /opt/gradle
---> Running in 8b92d2062a0e
Removing intermediate container 8b92d2062a0e
---> 9a8b7ebfd19a
Step 4/11 : ADD ./gradle.zip /opt/
---> 6c32d08ac3d6
Step 5/11 : RUN unzip -o /opt/gradle.zip -d /opt/
---> Running in db8bbf7af51c
Archive: /opt/gradle.zip
creating: /opt/gradle/
creating: /opt/gradle/gradle-6.3/
creating: /opt/gradle/gradle-6.3/bin/
inflating: /opt/gradle/gradle-6.3/bin/gradle
inflating: /opt/gradle/gradle-6.3/bin/gradle.bat
...
inflating: /opt/gradle/gradle-6.3/lib/xml-apis-1.4.01.jar
inflating: /opt/gradle/gradle-6.3/LICENSE
inflating: /opt/gradle/gradle-6.3/NOTICE
inflating: /opt/gradle/gradle-6.3/README
Removing intermediate container db8bbf7af51c
---> 00b1723e518d
Step 6/11 : ADD ./.gradle.zip /root/.gradle/
---> 19cab7daafba
Step 7/11 : RUN unzip -o /root/.gradle/.gradle.zip -d /root/.gradle
---> Running in cda0aad70e6f
Archive: /root/.gradle/.gradle.zip
creating: /root/.gradle/6.3/
creating: /root/.gradle/6.3/fileChanges/
extracting: /root/.gradle/6.3/fileChanges/last-build.bin
creating: /root/.gradle/6.3/fileHashes/
...
extracting: /root/.gradle/vcs-1/gc.properties
creating: /root/.gradle/workers/
Removing intermediate container cda0aad70e6f
---> bd42d756dcf7
Step 8/11 : ENV PATH="/opt/gradle/gradle-6.3/bin:${PATH}"
---> Running in 3d84e00c5b82
Removing intermediate container 3d84e00c5b82
---> ef445b162906
Step 9/11 : ENV GRADLE_HOME="opt/gradle/gradle-6.3"
---> Running in 41c1a2017e9f
Removing intermediate container 41c1a2017e9f
---> c77880c756fd
Step 10/11 : RUN chmod 777 /opt/gradle/gradle-6.3/bin/*
---> Running in 77eb321c94ce
Removing intermediate container 77eb321c94ce
---> 3e4e65c47c61
Step 11/11 : ENV JAVA_HOME="/opt/java/openjdk"
---> Running in 4bc72d56e33d
Removing intermediate container 4bc72d56e33d
---> eba22c19da02
Successfully built eba22c19da02
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
C:\sw\hlf-scripts\javaenv-image-2>
Проверьте список docker образов, и вы должны найти там недавно созданный образ. В приведенном ниже списке см. Первый, созданный сейчас. У него есть REPOSITORY и TAG as. Обратите внимание, что IMAGEID для этого вновь созданного образа - «eba22c19da02». Позже это будет использовано в приведенной ниже команде.
C:\sw\hlf-scripts\javaenv-image-2>docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> eba22c19da02 4 minutes ago 4.94GB
dev-peer0.org2.example.com-fabcar-1.0-264b0a1cb5efbecaac5cf8990339c24474dc8435c6e10f10f2be565d555d0e94 latest 32aca2e8365e 5 hours ago 4.58GB
dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba latest 89f8611e67f7 5 hours ago 4.58GB
hyperledger/fabric-javaenv 1.4 190c5452a677 22 hours ago 4.56GB
hyperledger/fabric-ccenv 1.4 774f228847d4 37 hours ago 1.79GB
openjdk latest 0ce6496aae74 6 weeks ago 497MB
hyperledger/fabric-ca 1.4 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-ca 1.4.6 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-ca latest 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-tools 1.4.6 0f9743ac0662 3 months ago 1.49GB
hyperledger/fabric-tools latest 0f9743ac0662 3 months ago 1.49GB
hyperledger/fabric-orderer 1.4 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-orderer 1.4.6 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-orderer latest 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-peer 1.4 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-peer 1.4.6 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-peer latest 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-zookeeper 0.4 ede9389347db 7 months ago 276MB
hyperledger/fabric-zookeeper 0.4.18 ede9389347db 7 months ago 276MB
hyperledger/fabric-zookeeper latest ede9389347db 7 months ago 276MB
hyperledger/fabric-kafka 0.4 caaae0474ef2 7 months ago 270MB
hyperledger/fabric-kafka 0.4.18 caaae0474ef2 7 months ago 270MB
hyperledger/fabric-kafka latest caaae0474ef2 7 months ago 270MB
hyperledger/fabric-couchdb 0.4 d369d4eaa0fd 7 months ago 261MB
hyperledger/fabric-couchdb 0.4.18 d369d4eaa0fd 7 months ago 261MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 7 months ago 261MB
Теперь мы хотим указать docker использовать это вновь созданное изображение как изображение 'hyperledger / fabri c -javaenv' (которое позже будет выбрано вверх по HLF при создании сети HLF). Для всего этого я использую HLF 1.4, а в теге ниже указано «: 1.4». После запуска команды вы можете заметить, что «eba22c19da02» теперь заполнено как «hyperledger / fabri c -javaenv», а TAG - как 1. 4
C:\sw\hlf-scripts\javaenv-image-2>docker tag eba22c19da02 hyperledger/fabric-javaenv:1.4
C:\sw\hlf-scripts\javaenv-image-2>docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hyperledger/fabric-javaenv 1.4 eba22c19da02 8 minutes ago 4.94GB
dev-peer0.org2.example.com-fabcar-1.0-264b0a1cb5efbecaac5cf8990339c24474dc8435c6e10f10f2be565d555d0e94 latest 32aca2e8365e 5 hours ago 4.58GB
dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba latest 89f8611e67f7 5 hours ago 4.58GB
hyperledger/fabric-ccenv 1.4 774f228847d4 37 hours ago 1.79GB
openjdk latest 0ce6496aae74 6 weeks ago 497MB
hyperledger/fabric-ca 1.4 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-ca 1.4.6 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-ca latest 3b96a893c1e4 3 months ago 150MB
hyperledger/fabric-tools 1.4.6 0f9743ac0662 3 months ago 1.49GB
hyperledger/fabric-tools latest 0f9743ac0662 3 months ago 1.49GB
hyperledger/fabric-orderer 1.4 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-orderer 1.4.6 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-orderer latest 84eaba5388e7 3 months ago 120MB
hyperledger/fabric-peer 1.4 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-peer 1.4.6 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-peer latest 5a52faa5d8c2 3 months ago 128MB
hyperledger/fabric-zookeeper 0.4 ede9389347db 7 months ago 276MB
hyperledger/fabric-zookeeper 0.4.18 ede9389347db 7 months ago 276MB
hyperledger/fabric-zookeeper latest ede9389347db 7 months ago 276MB
hyperledger/fabric-kafka 0.4 caaae0474ef2 7 months ago 270MB
hyperledger/fabric-kafka 0.4.18 caaae0474ef2 7 months ago 270MB
hyperledger/fabric-kafka latest caaae0474ef2 7 months ago 270MB
hyperledger/fabric-couchdb 0.4 d369d4eaa0fd 7 months ago 261MB
hyperledger/fabric-couchdb 0.4.18 d369d4eaa0fd 7 months ago 261MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 7 months ago 261MB
C:\sw\hlf-scripts\javaenv-image-2>
Теперь приступайте к созданию Java HLF-сети, установка и удаление вашего цепного кода должны завершиться успешно.