Here is the Dockerfile
s to dockerize popular EDA (Electronic Design Automation) tools!
With docker images made from these Dockerfiles
, we could do:
Of course, most things listed above could be done without Docker and meaningless job made by me :)
I don't know dockering tools is useful or not...
netbase
package is also required (#6))You should NOT upload an image containing commercial tool to PUBLIC docker registry! ;-)
Intermediate images are not removed automatically, you have to remove by yourself for now. (see below)
X11 forwarding with host was not prepared. In other words, with this image you cannot open GUI windows out-of-the-box. (See #3)
How can we run docker container with unpriviledged permission? In other words, can this image be used similar to desktop applications?
Dockerfile
sDockerfile
s, not of actual images or installer packages$ sudo docker build -t <image_name>:<version> -f <Dockerfile> .
e.g. $ sudo docker build -t synopsys_dc:X-2020.4 -f Dockerfile_Synopsys_DC .
$ sudo docker images # find a tag of the intermediate image
$ sudo docker rmi <image_tag_you_want_to_remove>
or
$ docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
## Launch a container
- Example command to run a container
- You should pass `LM_LICENSE_FILE` environment variable regarding your license server
- Consider bind mount your user directory
```bash
$ sudo docker run --rm -it -e LM_LICENSE_FILE="<port>@<license_server>" \
<image_name> [<command>]
Requires following jobs to be run within Ubuntu (14.04) environment
$ sudo apt install csh libxss1 libsm6 libice6 libxft2 libjpeg62 libtiff5 libmng2 libpng12-0
# WORKAROUND link old library filenames with newer version
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1
Change default shell from dash
to bash
for avoiding shell script compatibility issues
$ sudo update-alternatives --install /bin/sh sh /bin/bash 20
Ubuntu 18.04 requires additional treatments, because libpng12-0
package was removed from that version
libpng12-0
package, or add source of older releases and install package from that source like below:
$ sudo 'echo "deb http://security.ubuntu.com/ubuntu xenial-security main" >> /etc/apt/sources.list'
$ sudo apt update
$ sudo apt install -y -t xenial libpng12-0
libxml2
alsonetbase
package, which has /etc/protocols
fileAdditionally required packages:
dc
build-essential
package (with unnecessary more packages ;-( )Define below environment variables
$ export VCS_HOME=<path_to_vcs>
$ export VCS_TARGET_ARCH="amd64"
Set alias for vcs
command. Below example is for Bash shell:
$ alias vcs="vcs -full64"
VCS_TARGET_ARCH
was not fully effectiveDockerfile
for now Requires following packages
$ sudo apt install openjdk-6-jre # for installer
$ sudo dpkg --add-architecture i386
$ sudo apt libxtst6:i386 libxext6:i386 libxi6:i386 ksh csh \
Define below environment variable to execute 64-bit binary
$ export CDS_AUTO_64BIT=ALL
(Virtuoso) Define below environment variable regarding inside <path/to/virtuoso>/share/oa/lib/
$ export OA_UNSUPPORTED_PLAT "linux_rhel50_gcc48x"