Welcome to the Linux Foundation Forum!

Tips on using latest version of docker Compose workaround for Prereq instruction typos

king612
king612 Posts: 18
edited June 2022 in LFD272 Class Forum

If you did the docker-compose workaround for the error in the prereq instructions on getting everything setup, there were a couple other non-obvious steps I had to do. Hopefully this will save others some time / suffering. I was getting very persistent errors about the network.sh script being unable to connect to the docker daemon. Here's what I found.

1) Even though the work around was to install docker compose by installing Docker Desktop (all google posts I could find pointed to this method), I could never actually get Docker Desktop to run on the Ubuntu 20... running on the recommended Oracle VirtualBox VM because it requires KVM, which this setup doesn't support (at least running on a regular non-M1 MacBook Pro).

2) Despite this, the daemon does seem to be configured and starts up on boot up. Make sure this is working or nothing else will. To verify that it's up:

$ sudo systemctl status docker

If this says docker is up, then the deamon is running. If not here's a good article on things to do:

https://www.baeldung.com/ops/docker-cannot-connect

2) Based on that article and on my experience:

  • make sure your user is in the 'docker' group
  • if you have to add yourself manually (I did), you have to restart the docker service for it to take effect: sudo service docker restart

3) With this done, the network.sh startup script still fails.

  • Thanks to @rashtrakoff , change the version numbers on all the compose yaml scripts to 3.7. (I don't know what this does exactly)
  • I still had issues until noticing that with the latest docker / compose install, the command 'docker-compose' no longer works. Compose is now accessed through docker directly like this 'docker compose' (note the space, it's an argument). For example, you should check that this works:

$ docker compose version

I get:

Docker Compose version v2.6.0

Note that if you are using the latest docker / compose the instructions are wrong here:

$ docker-compose --version

This no longer works

4) Now carefully change all occurences of 'docker-compose' to 'docker compose' in the .yaml files, BUT not where that occurs in filenames or variables, only on shell script commands. Do not do a Replace All.

5) Believe it or not, this still failed for me until I finally just always run the ./network.sh command with sudo:

$ sudo ./netowrk up ....

from the instructed directory

6) Another tip someone posted, if you having issues shut the network down before trying again with (as sudo for me anyway):

$ sudo ./network down

This finally worked, I think. Below is how looked like this for me the first time with no errors. Maybe there's supposed to be more? Please comment if so.

$ sudo ./network.sh up createChannel -ca -s couchdb

Creating channel 'mychannel'.
If network is not up, starting nodes with CLI timeout of '5' tries and CLI delay of '3' seconds and using database 'couchdb with crypto from 'Certificate Authorities'
Bringing up network
LOCAL_VERSION=2.2.2
DOCKER_IMAGE_VERSION=2.2.2
CA_LOCAL_VERSION=1.4.9
CA_DOCKER_IMAGE_VERSION=1.4.9
Generating certificates using Fabric CA
[+] Running 3/0
⠿ Container ca_org1 Running 0.0s
⠿ Container ca_org2 Running 0.0s
⠿ Container ca_orderer Running

Comments, feedback, suggestion are welcome.

Comments

  • Bobbijn
    Bobbijn Posts: 193
    @king612, Thank you for sharing this information with other learners. Your comprehensive advice on the workarounds shows your dedication to hard work. I will pass this note on to the current content creators who are working on the upgrades. Very impressive work. Bobbi      
    
  • ronakp5
    ronakp5 Posts: 1

    Spent a few days trying to fix the problem. After reading this post I was able to fix the problem in 5 minutes. Hope others read this. Thank you @king612

Categories

Upcoming Training