Conversation
CPrutean
left a comment
There was a problem hiding this comment.
A few things I was thinking about looking at this, I dont know if i agree with the methodology of having 2 separate containers for prod vs dev, Each dockerfile should install all dependencies internally and then run inside the container.
Please provide clarification on what hardware specific stuff wouldn't be able to work inside the container that we couldn't push into one docker file.
|
The motivation for the two Dockerfiles wasn't a hardware issue. I was thinking that the dev container wouldn't have things like the ZED SDK since the camera input would be provided by the simulation environment for testing before running the code on the rover. I didn't really know that you could run a multi-stage Dockerfile before doing this, so I'm working on changing it to that. |
CPrutean
left a comment
There was a problem hiding this comment.
Looks much better, for future projects we should stick to one docker file since its generally much cleaner
|
Before merge please fix python lint |
There was a problem hiding this comment.
I wanted to suggest a different approach to the Dockerfile, the dockerfile is specificially for ROS so switching from a base ROS specific image feels like a pattern we shouldn't repeat.
Instead something we could do is copy the setup commands for ZED specifically and keep the ros image as is.
https://github.com/stereolabs/zed-docker/blob/master/5.X/ubuntu/devel/Dockerfile
Linked above is the source code of the zed SDK dockerfile, its about 25 lines long, we could instead keep the old ROS docker file add in the small ZED sdk setup lines and keep the Dockerfile as is.
My main gripe with changing the base Docker image is it incentivise us to do that over and over when we want to add software support for something specific when we can instead just add a small section to add the patch we need in.
You can disregard this and push back on this as well this is just my opinion
…have minimal clutter with independent containers.
…single multi-stage Dockerfile.
91ed9e0 to
12da1fb
Compare
Creates two dev containers for environment - one for dev and one for prod/rover. Builds on both ARM64 and an x86 system.