I am currently working on automating the OpenLane ...
# openlane
a
I am currently working on automating the OpenLane tool but have encountered a challenge. The OpenLane environment expects a Docker engine within the container to manage dependencies and tasks, such as running additional containers for its operations. However, Docker is not installed or accessible within this container environment, which makes deployment on a cloud service difficult. Is there an alternative method to install and run OpenLane without using Docker? Additionally, could you suggest any other cloud deployment options or strategies that could work for OpenLane automation?
t
I'd switch to OpenLane2 where you can either use
nix
for dependencies or run natively if you manage dependencies yourself. Tinytapeout is using OL2 inside github actions for automated builds so you can have a look there for examples.
l
Creating a new CAD flow (automation) and/or improvements of existing flow should be tried outside of the container. There are instructions about how to install OpenLane 1/2 without docker in a plain Linux environment. Then develop and test the new flow. When satisfied create a container so that it can be deployed to the users. This should be the approach .
d
With OL1 maybe you make a
docker
command that is really a script, that logs the commandline arguments and exits successfully (a fake docker command). This script would be available inside the docker container. You might find OL doesn't really need docker and its just is kind of an architecture error (unnecessary complexity introduced for no/limited benefit) For me I have a 3 stage setup. Stage 1 build (that can create compiled parts that you maybe modifying). Output deliverables are the necessary docker repository images needed for the following stages. This maybe a mix of images some official and some built locally. Stage 2 this prepares an OpenLane flow environment to build the flow environment. IIRC this is also a docker image output of a merged composite of the items from stage 1. Stage 3 this introduces a target project and runs the flow (the flow was created from stage 2) This arrangement is not that different from how OL already works. Except none of the docker environments require a working docker inside the individual environment (the docker inside docker problem). What is there is just a script that basically does
exit 0