renode / renode-docker

Docker image description with the newest Renode version
5 stars 15 forks source link

Provide tagged images of different renode versions on docker hub #2

Closed LeoVerto closed 4 years ago

LeoVerto commented 4 years ago

First of all, thank you for maintaining this docker image!

I'd like to use the renode image for an older version of the application, namely 1.3 as contiki-ng seems to be stuck on that.

Is there any chance you could release appropriately tagged docker images for different renode versions to Docker Hub so we can pull ones other than latest?

Thanks in advance!

PiotrZierhoffer commented 4 years ago

Hey @LeoVerto, thanks for your report

We can consider tagging future releases of the image, but as Renode develops very rapidly, it would be difficult for us to maintain or revive older versions as well.

Can you please elaborate why is contiki-ng stuck on Renode 1.3? Maybe this is something we can address easily, if you describe what you're trying to do.

tyhoff commented 4 years ago

@PiotrZierhoffer I'm in agreement here. I think the ask is more to tag the Docker images, not push old tags.

In a Dockerfile that I might use for my own CI system, I'd want something like:

FROM antmicro/renode:1.10.1

This would keep my CI system working forever regardless of future updates to the Renode docker image or project itself.

You are right, that in an ideal world, everyone should be on antmicro/renode:latest, but that is likely not possible, especially if the underlying contents of the Docker image changes.

For example, I wrote a post on how to use Renode and Github Actions to run automated tests on an STM32 about a month ago. I was forced to pin to the Docker image antmicro/renode:latest since there were no stable versions available on Docker Hub. You can see my test script here: https://github.com/memfault/interrupt-renode-test-automation/blob/master/run_tests.sh.

That script used test.sh which was actually recently removed from the master Dockerfile because the commit https://github.com/renode/renode-docker/commit/f8e33bd3f95f6c871eabc96cd2222d1f6c9466c2 no longer clones the repo into the Docker image. If there was a stable 1.9 tag, I would have used that and any future commit to the CI system would continue to work.

Ok, I hope I explained the why. Here's the how for how one could release Renode 1.10.1 to the public on Docker Hub.

$ docker build --build-arg userId=`id -u` --build-arg groupId=`id -g` -t antmicro/renode:latest .
$ docker push antmicro/renode:latest

$ docker tag antmicro/renode:latest antmicro/renode:1
$ docker push antmicro/renode:1

$ docker tag antmicro/renode:latest antmicro/renode:1.10
$ docker push antmicro/renode:1.10

$ docker tag antmicro/renode:latest antmicro/renode:1.10.1
$ docker push antmicro/renode:1.10.1

I hope this helps! I know it would help us at Memfault a lot and not force us to host our own set of Renode images.

We can consider tagging future releases of the image, but as Renode develops very rapidly, it would be difficult for us to maintain or revive older versions as well.

I don't think this is a concern. If 1.9.0 worked for a developer at one point it time, it will always work for them once the Docker image is created, tagged, and pushed. If there are bug fixes that this developer needs, then it's on them to update to a newer image.

PiotrZierhoffer commented 4 years ago

@tyhoff There is an agreement here that we should keep tags, that's for sure. Actually we are looking into making docker hub handle these versions itself. It should be possible according to the docs, so I expect to have it done soon.

The problem with older versions is that some rely on online resources that are no longer available (e.g. moved URLs), that's why I'm not eager to revive 1.3. We will most likely keep everything from version 1.6.1 up.

As a side note, to solve your issue quickly, in the latest image you should have a /usr/bin/renode-test which is the same as test.sh, but available system-wide. It's installed from the package.

tyhoff commented 4 years ago

Sounds good @PiotrZierhoffer. Thank you for the update and response.

The problem with older versions is that some rely on online resources that are no longer available (e.g. moved URLs), that's why I'm not eager to revive 1.3. We will most likely keep everything from version 1.6.1 up.

Completely makes sense.

As a side note, to solve your issue quickly, in the latest image you should have a /usr/bin/renode-test which is the same as test.sh, but available system-wide. It's installed from the package.

Good to know! I'll patch this up in that example repo and our internal repos (we are using Renode to run automated tests for the nRF52. We love the new support for that board.)

PiotrZierhoffer commented 4 years ago

The current list of tags is here https://hub.docker.com/r/antmicro/renode/tags . I'll close this issue, as getting back to 1.3 is not possible. If needed by anyone, we might consider 1.6 and 1.7 series, but it will be more difficult to add.

tyhoff commented 4 years ago

Wonderful! Having a stable 1.9 and 1.10 release will help us tremendously going forward.