Replies: 11 comments 7 replies
-
Draft PR that shows the use of Podman and Podman-Compose #596 |
Beta Was this translation helpful? Give feedback.
-
I think at the end of the day we shouldn't just be discounting docker-desktop completely. It does offer a very good seamless solution for people to work with containers on Mac so seems reasonable that people would buy it to increase their productivity in the same way developers may buy other development tools. I've only ever seen one request about moving off of docker desktop to something else from the community and that was actually for the IBP vscode extension so this new docker subscription doesn't appear to be a concern for the community at large. What about fabric contributors and maintainers who use a mac, as all of our test suites for various components such as the sdks and chaincodes use docker for their test suites and pipelines as well as fabric-test a lot more impact there I feel. Also we use docker as part of the build process to create images etc |
Beta Was this translation helpful? Give feedback.
-
The scenario tests for fabric-gateway also rely on docker-compose: |
Beta Was this translation helpful? Give feedback.
-
On a mac working with an embedded linux VM is the way to go. Rancherdesktop provides a tight integration with the embedded VM and bundles the CLI-compatible Rancher/nerdctl includes a I'll be loud and clear with (Josh) bias, but a good route forward is to build out the Kube test network, and de-emphasise the compose based test networks. This sets up for a good alignment with IBP / production deployments, highlights best practices for Gateway and Chaincode-as-a-Service contracts, and serves as a stable basis for building, debugging, and running code locally in a debugger. The last bit of advocacy here is that the k8s routes are virtually identical across docker, podman, and rancher. For instance I was able to switch between Docker (KIND) and Rancher/nerdctl (k3s) without any impact to the build/edit/test/tag/push/run/etc. pipeline. |
Beta Was this translation helpful? Give feedback.
-
What's the plan for CI? as in current PR(#596) the CI was stopped. is there any solution that making code(fabric-sample) able to support docker/Rancher/podman? I suppose there is interoperability between k8s, kind and minikube? if there is, no sure if we are able to make the script more flexible?, as |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
One additional comment before moving away from this issue / thread. Despite my personal bias to use one specific runtime, I really appreciate and would like to amplify @davidkel 's perspective that we shouldn't just be discounting docker-desktop completely. As a general rule, Fabric should encourage the selection of platforms, runtimes, and tooling such that we are all encouraged and empowered individually to select the right tool, for the task at hand. In some cases, the "right tool" is to run native binaries. In all cases, let's find routes that work together in an orchestrated fashion. There's no "one size fits all" solution for Fabric. Cheers and happy coding. |
Beta Was this translation helpful? Give feedback.
-
Revisiting Docker Desktop alternatives today on an M1 Mac, I tried this:
It seems to have worked OK. The network stands up, chaincode deploys and the client application runs successfully! |
Beta Was this translation helpful? Give feedback.
-
@bestbeforetoday if you do a |
Beta Was this translation helpful? Give feedback.
-
ditto 👎
Even after a
My hope was to get a list like this, specifically for
Any ideas if this is a |
Beta Was this translation helpful? Give feedback.
-
maybe dockerx on github agent has s390x support? |
Beta Was this translation helpful? Give feedback.
-
Background
A 'Fabric Network' is a distributed system running a number of nodes, of different types. When configured together they provide the cross-enterprise permissioned blockchain.
Fabric is built and supplied as a number of different binary images, along with convenience 'docker images', along with a several example ways these images can be configured and orchestrated to make a fully functional distributed system. The 3 examples in the fabric-samples repo are
**Some Techonolgy **
Fabric's docker dependency
There are 2 ways Fabric is dependent on Docker itself, over-and-above the Fabric binaries being built into container images.
The distruptor
Docker Desktop is changing it's license model, so some developers/companies may no longer have access to this.
The core docker-engine/docker-daemon/docker-cli/docker-compose remain available under their original open-source licenses and usable, but the tool that bundles all these together and manages them for MacOS and Windows platforms is changing.
Impact
For a Linux based environment, either Linux running 'on-metal' or in a virtual environment such as WSL2/VirtualBox etc. where it uses as the primary means of development there is no impact.
Docker-Desktop effectively creates a LinuxVM on Windows and MacOS specifically for managing docker containers, and 'hides/smooths' access to these containers from the native CLIs of those platforms.
Without Docker-Desktop therefore, unless MacOS/Windows opt to the Linux VM approach, a Docker-compose-based approach to running a test-network is not available. Note this also affects other tools such as the IBM Blockchain VSCode Extension.
Solutions and Mitigations
If Docker-Desktop is not available then:
Actions
For Linux/LinuxVM approaches docker remains a completely viable approach and should continue to be used
For MacOS/Windows if Docker-Desktop is available to use, then similarly it remains a completely viable approach.
Rancher-Desktop would be the direct replacement if the Docker-Desktop is not available
Document the configuration of the peer to 'turn-off' the reliance on the docker-daemon, and how it is used otherwise
Validate the podman/nerdctl approaches to running the test-network and identify any issues
Article on how to use the Rancher-Desktop
Beta Was this translation helpful? Give feedback.
All reactions