| # debian.sh --arch 'amd64' out/ 'trixie' '@1789689600' |
| ARG USER_NAME=kicad |
| ARG USER_UID=1000 |
| ARG USER_GID=1000 |
| LABEL org.opencontainers.image.authors=https://groups.google.com/a/kicad.org/g/devlist org.opencontainers.image.url=https://kicad.org org.opencontainers.image.documentation=https://docs.kicad.org/ org.opencontainers.image.source=https://gitlab.com/kicad/kicad-ci/kicad-cli-docker org.opencontainers.image.vendor=KiCad org.opencontainers.image.licenses=GPL-3.0-or-later org.opencontainers.image.description=Image containing KiCad EDA, python and the stock symbol and footprint libraries for use in automation workflows |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c apt-get update && apt-get install -y libbz2-1.0 libcairo2 libglu1-mesa libglew2.2 libx11-6 libwxgtk3.2-1 libwxgtk-webview3.2-1 libpython3.13 python3 python3-wxgtk4.0 python3-yaml python3-typing-extensions libcurl4 libngspice0 ngspice libocct-modeling-algorithms-7.8 libocct-modeling-data-7.8 libocct-data-exchange-7.8 libocct-visualization-7.8 libocct-foundation-7.8 libocct-ocaf-7.8 unixodbc zlib1g shared-mime-info git libgit2-1.9 libsecret-1-0 libprotobuf32 libzstd1 libnng1 libspnav0 libpoppler-glib8t64 sudo # buildkit |
| COPY /usr/installtemp/bin /usr/bin # buildkit |
| COPY /usr/installtemp/share /usr/share # buildkit |
| COPY /usr/installtemp/lib /usr/lib # buildkit |
| COPY /usr/share/kicad /usr/share/kicad # buildkit |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c ldconfig -l /usr/bin/_pcbnew.kiface # buildkit |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c apt-get clean autoclean; apt-get autoremove -y; rm -rf /var/lib/apt/lists/* # buildkit |
| ENV LANG=C.UTF-8 |
| ENV LANGUAGE=C.UTF-8 |
| ENV LC_ALL=C.UTF-8 |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c groupadd --gid $USER_GID $USER_NAME && useradd --uid $USER_UID --gid $USER_GID -m $USER_NAME && usermod -aG sudo $USER_NAME && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers # buildkit |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c mkdir -p /home/$USER_NAME/.config/kicad/$(kicad-cli -v | cut -d . -f 1,2) # buildkit |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c cp /usr/share/kicad/template/*-lib-table /home/$USER_NAME/.config/kicad/$(kicad-cli -v | cut -d . -f 1,2) # buildkit |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c chown -R $USER_NAME:$USER_NAME /home/$USER_NAME/.config # buildkit |
| RUN |3 USER_NAME=kicad USER_UID=1000 USER_GID=1000 /bin/sh -c chown -R $USER_NAME:$USER_NAME /tmp/org.kicad.kicad || true # buildkit |
| USER kicad |
| ARG KICAD_VERSION=10.0.6 |
| USER root |
| RUN |1 KICAD_VERSION=10.0.6 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends tigervnc-standalone-server tigervnc-tools tigervnc-scraping-server i3-wm i3status suckless-tools xterm novnc python3-websockify dbus-x11 x11-utils x11-apps xdotool procps libgl1-mesa-dri mesa-utils fonts-dejavu-core python3-pip && rm -rf /var/lib/apt/lists/* # buildkit |
| ARG KICAD_PYTHON_VERSION=0.8.0 |
| RUN |2 KICAD_VERSION=10.0.6 KICAD_PYTHON_VERSION=0.8.0 /bin/sh -c pip install --no-cache-dir --break-system-packages "kicad-python==${KICAD_PYTHON_VERSION}" # buildkit |
| RUN |2 KICAD_VERSION=10.0.6 KICAD_PYTHON_VERSION=0.8.0 /bin/sh -c install -d -m 0755 /opt/kicad-vnc # buildkit |
| COPY --chmod=0755 scripts/entrypoint.sh /usr/local/bin/entrypoint.sh # buildkit |
| COPY --chmod=0644 scripts/i3-config /opt/kicad-vnc/i3-config # buildkit |
| COPY --chmod=0755 scripts/seed_config.py /opt/kicad-vnc/seed_config.py # buildkit |
| COPY --chmod=0755 scripts/watch-ctl /opt/kicad-vnc/watch-ctl # buildkit |
| RUN |2 KICAD_VERSION=10.0.6 KICAD_PYTHON_VERSION=0.8.0 /bin/sh -c install -d -o kicad -g kicad /tmp/kicad /home/kicad/.vnc # buildkit |
| USER kicad |
| WORKDIR /home/kicad |
| ENV HOME=/home/kicad DISPLAY=:1 VNC_GEOMETRY=1920x1080 VNC_DEPTH=24 NOVNC_ENABLED=1 VNC_ALLOW_RESIZE=0 VNC_WATCH_ENABLED=1 KICAD_RESTART=1 KICAD_API=1 WINDOW_MANAGER=i3 I3_MOD=Mod4 LIBGL_ALWAYS_SOFTWARE=1 |
| LABEL org.opencontainers.image.title=kicad-desktop org.opencontainers.image.description=KiCad served over VNC and noVNC, with the IPC API socket exposed org.opencontainers.image.source=https://git.supported.systems/rsp2k/kicad-desktop org.opencontainers.image.version=10.0.6 |
| EXPOSE [5901/tcp 5902/tcp 6080/tcp 6081/tcp] |
| HEALTHCHECK {Test:[CMD-SHELL xdpyinfo -display :1 >/dev/null 2>&1 || exit 1] Interval:30s Timeout:5s StartPeriod:30s StartInterval:0s Retries:3} |
| ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] |