Yesterday I tried docker image inputoutput/cardano-node:1.35.3 which is also tagged as latest. So far so good. The container came up and did his verifying block routine. In the log file I could read the following entries:
..,"env":"1.35.3:00000","host":"relay","lo..
Version entry 1.35.3:0000 was the first inconsistency. From another manual install I was used to get 1.35.3:950c4 instead of 1.35.3:0000
When I startet gLiveView I saw 1.34.1 [73f9a746] even though the image was tagged as 1.35.3. I expected 1.35.3 [950c4e22]
After a bit research on hub.docker.com I found another image tagged inputoutput/cardano-node:1.35.3-new. But if I would run this image with my configuration it breaks with the following error:
docker run --rm inputoutput/cardano-node:1.35.3-new --config /opt/cardano/config/mainnet-config.json --topology /opt/cardano/config/mainnet-topology.json --socket-path /opt/cardano/ipc/socket --database-path /opt/cardano/data/db --host-addr 0.0.0.0 --port 22378
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--config": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled
I know there is no rush to upgrade, but is there someone else who has problems with inputoutput/cardano-node images?
However, you can give inputoutput/cardano-node:1.35.3-new docker tag a spin. It’s much nicer in my opinion. Can get peers from consul or define them via NODE_TOPOLOGY env var. Has pre-loaded environments but can also take a custom NODE_CONFIG. It also has a DEBUG_SLEEP param that you can set to start the container without starting the node to debug and has a /bin/debug entrypoint that gives you a bash shell with a bunch of useful utilities.
I was not able to run it however, I tried “/bin/debug” as entry-point
If I try to run usual way with “/usr/local/bin/cardano-node” as entry point I’m getting:
/usr/local/bin/cardano-node: no such file or directory
this works for me: podman run -it -v data:/data -e DATA_DIR=/data -e ENVIRONMENT=preprod -e SOCKET_PATH=/data/node.socket inputoutput/cardano-node:1.35.3-new
Just to make sure I didn’t make a mistake I went through everything again and something is wrong with the image inputoutput/cardano-node:1.35.3. The git revision number ist 000000 as you can see in the last line. I’m just surprised that more people haven’t noticed it but maybe thats why the come up with 1.35.3-new
root@relay02:~# docker images | grep inputoutput/cardano-node
inputoutput/cardano-node 1.35.3 b4dc9a4cd2bc 4 months ago 777MB
inputoutput/cardano-node latest b4dc9a4cd2bc 4 months ago 777MB
root@relay02:~# docker ps | grep inputoutput/cardano-node
d9a01f611e6f inputoutput/cardano-node "entrypoint run --co…" 3 minutes ago Up 3 minutes iohk_mag_cardano_node
root@relay02:~# docker exec d9 /usr/local/bin/cardano-node --version
Alloc Copied Live GC GC TOT TOT Page Flts
bytes bytes bytes user elap user elap
cardano-node 1.35.3 - linux-x86_64 - ghc-8.10
git rev 0000000000000000000000000000000000000000
I give version 1.35.3-new a shot. @os11k, thank you for your hint.
I saw that git rev version “0000000000000000000000000000000000000000” not only on 1.35.3, that doesn’t mean it do not work, seems just git version is messed up.
I do run 1.35.3 on mainnet without issues(even I didn’t get yet any blocks there with it)
Just keep in mind 1.35.3-new seems to be broken. I was not able to make it work and a lot of other SPOs are complaining on it, but give it a shot.
If you will be able to run it, let me know it will be interesting to find out how to make it work.
I guess, that is the mistake!!! The way, I interact with gLiveView and the container. The whole time I was wondering where the old version 1.34.1 comes from. I’ll revise it and put a HowTo in the forum if someone else wants to build it that way.
I was too focused on the new version that I switched it off completely.
Would be nice if you can get some documentation how to get gliveview in docker, I’m not only one wondering, there were several SPOs asking in this forum.
Regarding 1.35.3-new seems it is possible to lunch in docker more details from hareem_wave
To anyone using 1.35.3-new Docker image. Quite a few things have changed around the container usage. Instead of using the run command to pass arguments to start the node, we instead now pass environment variables to the container. Here are some of the important ones; ENVIRONMENT, DATA_DIR, DB_DIR, SOCKET_PATH, HOST_ADDR, PORT, NODE_CONFIG, NODE_TOPOLOGY.
The DATA_DIR is the main volume that is mounted that the container will use to write config files, etc.
DATA_DIR and ENVIRONMENT seem to be the minimum required. The container will use sensible default directories within DATA_DIR for the database, socket, config, and topology files
One thing I would like to add for anyone else that may end up here.
The NODE_CONFIG is required if you don’t use ENVIRONMENT.
ENVIRONMENT will make the container use the presets for that environment. For example in preprod the config files would be in data/config/preprod . This will ignore the config passed in NODE_CONFIG.