integrate gdsfactory docker with the efabless docker

36 views
Skip to first unread message

S Armour

unread,
Jun 19, 2023, 8:51:09 PM6/19/23
to gdsfactory
I am new to docker but have been working with a variation of the efabless docker (https://github.com/efabless/foss-asic-tools) (https://github.com/iic-jku/iic-osic-tools) , IIC-OSIC-TOOLS (https://github.com/iic-jku/iic-osic-tools) on W11-WSL2. That docker contains all the analog electric & logic ASIC tools along with the Skywater-130 PDK. However, I want to get back to using gdspy for layout & MEEP and learning DevSim which is where the gdsfactory docker comes in.

 Thus I am wondering if there is a way to merge the two dockers build instructions or if someone already has a docker that has combined the two into a single container.

Thanks 

tvt...@gmail.com

unread,
Jun 20, 2023, 1:02:30 AM6/20/23
to gdsfactory
Hi,

I was just browsing through the project at the first link you sent (foss-asic-tools). It looks like much of that repo is actually dedicated to building layered docker images, with a suite of tools installed. Long term, I think it would be nice if gdsfactory could be added as one of the tools in their suite, so you may want to make an issue there with the suggestion.

In the shorter term, you should certainly be able to do this yourself... I think the most straightforward way should be to make a new Dockerfile, where you reference the desired (i.e. efabless) image as your base, then install mamba and gdsfactory on top of it. You can use the gdsfactory dev container as a template. 

You may be able to make the process more efficient with a multi-stage build, pulling what's required from the already-built gdsfactory image, but that's a bit more advanced, and I'm not super familiar with it myself :)

Note that I recommend you install gdsfactory into mamba and not into the system python... Partially that's because that's what the gdsfactory image does already, and partially that's because it will nicely sandbox you from the system python and let use whichever version you want. I notice that in the efabless image they use python 3.6, but I'd recommend using python 3.10 with gdsfactory.

Thanks,
Troy

S Armour

unread,
Jun 21, 2023, 8:01:11 PM6/21/23
to tvt...@gmail.com, gdsfactory
Troy thanks for the response,
So I looked at the efabless docker to try to work in your suggestion and noticed how out of date and sparse it was compared to the IIC-OSIC-TOOLS (https://github.com/iic-jku/iic-osic-tools)  docker. Where in that I found that they include the base gdsfactory install (line 11 in https://github.com/iic-jku/iic-osic-tools/blob/91bec934ad30cda161706619a22dcf20bd43be25/images/base/scripts/install.sh ); but doesn't include the rest of the gdsfactory suit such as devsim or meep.

So then I would like to fork the  IIC-OSIC-TOOLS docker to get the rest of the gdsfactory tools added; however, I am confused as to where in the gdsfactor docker build sequence (https://github.com/gdsfactory/gdsfactory/blob/main/.devcontainer/Dockerfile.dev) does mamba enter the picture, unless it's in the base `FROM jupyter/base-notebook:python-3.10` image that I suspect is the case. If you have a reference docker that has explicit  build instructions to install mamba that I can reference to supplement the libpython3.10 install that is in https://github.com/iic-jku/iic-osic-tools/blob/main/images/base/scripts/dependencies.sh that would be much appreciated

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "gdsfactory" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gdsfactory/ewwuXEVyecA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gdsfactory+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gdsfactory/cde1b677-28dc-4439-8ab7-bde100f47743n%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Troy Tamas

unread,
Jun 22, 2023, 12:02:26 AM6/22/23
to S Armour, gdsfactory
That's a great start you have already. In the line you point me to, where it pip installs gdsfactory, I would try replacing "gdsfactory" with "gdsfactory[full,gmsh,tidy3d,devsim,meow,sax]"

Then build the docker image. See if it works for you. It very well might. If not, it will hopefully at least give you an informative error message about anything which might still be missing.

In this case, I don't think you need to bother with mamba. Using the python3 install they have already set up (as described above) should hopefully be fine. If you do find yourself needing mamba though, I would reference the instructions for installing micromamba: https://mamba.readthedocs.io/en/latest/installation.html#install-script
Reply all
Reply to author
Forward
0 new messages