Example - Supply Chain App¶
Usage¶
-
Execute the following from:
docker run \ --rm \ --privileged \ -p 3000:3000 \ -p 3100:3100 \ -p 3200:3200 \ -p 4000:4000 \ -p 4100:4100 \ -p 4200:4200 \ ghcr.io/hyperledger/cactus-example-supply-chain-app:2024-03-08--pr-3059-1
-
Observe the example application pulling up in the logs
-
the test ledger containers,
-
a test consortium with multiple members and their Cactus nodes
-
-
Wait for the output to show the message
INFO (api-server): Cactus Cockpit reachable http://127.0.0.1:3200
-
Visit http://127.0.0.1:3200 in your web browser with Javascript enabled
Building and running the container locally¶
# Change directories to the project root
# Build the docker image and tag it as "scaeb" for supply chain app example backend DOCKER_BUILDKIT=1 docker build -f ./examples/cactus-example-supply-chain-backend/Dockerfile . -t scaeb
# Run the built image with ports mapped to the host machine as you see fit # The --privileged flag is required because we use Docker-in-Docker for pulling # up ledger containers from within the container in order to have the example # be completely self-contained where you don't need to worry about running # multiple different ledgers jus this one container. docker run --rm -it --privileged -p 3000:3000 -p 3100:3100 -p 3200:3200 -p 4000:4000 -p 4100:4100 -p 4200:4200 scaeb
Building the image with a specific npm package version:
DOCKER_BUILDKIT=1 docker build \ --build-arg NPM_PKG_VERSION=jwt-supply-chain \ --file ./examples/cactus-example-supply-chain-backend/Dockerfile \ --tag scaeb \ ./
Running the Example Application Locally¶
Make sure you have all the dependencies set up as explained in
BUILD.md
On the terminal, issue the following commands:
-
npm run enable-corepack
-
yarn run configure
-
yarn start:example-supply-chain
Debugging the Example Application Locally¶
On the terminal, issue the following commands (steps 1 to 6) and then perform the rest of the steps manually.
-
npm run enable-corepack
-
yarn configure
-
yarn build:dev
-
Locate the
.vscode/template.launch.json
file -
Within that file locate the entry named
"Example: Supply Chain App"
-
Copy the VSCode debug definition object from 2) to your
.vscode/launch.json
file -
At this point the VSCode
Run and Debug
panel on the left should have an option also titled"Example: Supply Chain App"
which starts the application -
When the application finishes loading, the JWT token generated is displayed on the terminal
-
Visit http://localhost:3200 in a web browser with Javascript enabled and insert the token when prompted
Live Reloading the GUI Application¶
-
npm run enable-corepack
-
yarn configure
-
yarn build:dev
-
Locate the
.vscode/template.launch.json
file -
Within that file locate the entry named
"Example: Supply Chain App"
-
Copy the VSCode debug definition object from 2) to your
.vscode/launch.json
file -
At this point the VSCode
Run and Debug
panel on the left should have an option also titled"Example: Supply Chain App"
which starts the application -
cd ./examples/cactus-example-supply-chain-frontend/
-
yarn serve:proxy
-
When the application finishes loading, the JWT token generated is displayed on the terminal
-
Visit http://localhost:8000 in a web browser with Javascript enabled and insert the token when prompted
-
At this point if you modify the source code of the GUI application under the
./examples/cactus-example-supply-chain-frontend/
path it will automatically reload the browser window (you will need to paste in the JWT again when this happens)