Step 1:
Save the following text to a file called 'Dockerfile', in an empty subdirectory.
# known to work with 18.04, other versions may have incompatibilities
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get -y -qq install apt-utils sudo && \
apt-get -y -qq install locales && locale-gen en_US.UTF-8 && \
apt-get -y -qq install git \
libopencv-dev \
libfann-dev \
python3-pip \
python3-tk \
clang \
imagemagick wget
# more schlop to install
RUN apt-get -y -qq install libqt5charts5 libqt5charts5-dev qt5-default unzip
# create a normal user so we're not running as root
RUN export uid=1000 gid=1000 && \
mkdir -p /home/developer && \
echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
echo "developer:x:${uid}:" >> /etc/group && \
echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
chmod 0440 /etc/sudoers.d/developer && \
chown ${uid}:${gid} -R /home/developer
# switch to user so it installs from the user's context
USER developer
ENV HOME /home/developer
# python3 schlop
RUN pip3 install numpy pandas scipy matplotlib
# set user's home directory as current directory because that's where we'll do work
WORKDIR /home/developer
# clone and build the rev5 commit
RUN wget https://github.com/happycube/ld-decode/archive/8e8b9f2c18136a1bcdbd3d659d72e42e23135771.zip
RUN unzip 8e8b9f2c18136a1bcdbd3d659d72e42e23135771.zip
RUN mv ld-decode-8e8b9f2c18136a1bcdbd3d659d72e42e23135771 ld-decode
RUN rm 8e8b9f2c18136a1bcdbd3d659d72e42e23135771.zip
RUN cd ld-decode && make && cd tools && qmake && make all && sudo make install
Step 2:
Build docker image using this command:
docker build -t lddecode_rev5 -f Dockerfile .
Step 3:
Run docker image using this command:
docker run --rm -v $HOME:/shared -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY -e "QT_X11_NO_MITSHM=1" -ti lddecode_rev5 /bin/bash
From inside the image, the /shared folder will point to your native host's home directory.
Follow instructions here for usage. Also, check out the "ld-analyse" UI app, it is very slick.
The nice thing about using the docker container is that you don't have to worry about installing a bunch of ld-decode dependencies to your native host operating system. To uninstall, you simply remove the docker image. Also, you can run more than one container in parallel if desired.