Moving application from Balena Fin to Raspberry Pi 4

Need some help configuring my docker file. The main problem I have is debian:stretch-20190612 not available anymore. Could I use archive version or update to a new version.

base-image for python on any machine using a template variable,

see more about dockerfile templates here: Define a container | balena

FROM balenalib/%%BALENA_MACHINE_NAME%%-debian:stretch-20190612

Install dependencies

RUN apt-get update &&
apt-get install -yq
python3
python3-dev
python3-pip
python3-setuptools
gstreamer-1.0
v4l-utils
libopus-dev
libvpx-dev
libsrtp2-dev
libopencv-dev
libatlas3-base
libatlas-base-dev
libjasper-dev
libilmbase12
libopenexr22
libavformat-dev
libswscale-dev
libqtgui4
libqt4-test
libavdevice-dev
libavfilter-dev
libavcodec-dev
libhdf5-dev
libhdf5-serial-dev
python-picamera
python3-picamera
python3-gi
gir1.2-glib-2.0
&& apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /tmp
RUN curl -Ls https://github.com/balena-io/balena-fin-sdk/releases/download/v0.2.0/balena-fin-sdk-v0.2.0.tar.gz | tar -xvz -C .
RUN mv Fin-0.2.typelib /usr/lib/arm-linux-gnueabihf/girepository-1.0/
RUN mv libfin.so /usr/lib/arm-linux-gnueabihf/

Enable the v4l2 driver for the Raspberry Pi camera

#RUN printf “bcm2835-v4l2\n” >> /etc/modules
RUN pip3 install --upgrade pip
RUN pip3 install async-timeout av==6.1.0
RUN pip3 install aiohttp aiohttp_basicauth==0.1.3 aioice==0.6.10 aiortc==0.9.11 numpy==1.15.4 opencv-python==3.4.4.19 imagezmq imutils zmq “picamera[array]”==1.10 --index-url piwheels - Simple index

Set our working directory

WORKDIR /usr/src/app

Copy requirements.txt first for better cache on later pushes

COPY requirements.txt requirements.txt

pip install python deps from requirements.txt on the resin.io build server

RUN pip install -r requirements.txt

This will copy all files in our root to the working directory in the container

COPY . ./

Enable udevd so that plugged dynamic hardware devices show up in our container.

ENV UDEV=1

main.py will run when container starts up on the device

CMD [“python3”,“-u”,“src/main.py”]

Hello,
It looks like you were using the base image balenalib/fincm3-debian:stretch-20190612 on your Fin but simply running the same Dockerfile on a Pi 4 tries to use balenalib/raspberrypi4-64-debian:stretch-20190612 which does not exist. You could try to find a close match in time for the Pi 4 such as balenalib/raspberrypi4-64-debian:stretch-20190920 which is a very old base image but may be a good replacement if you haven’t updated anything else in your Dockerfile.

Since you’re moving to a new device type, you may have to update some of your installs anyway, so you may want to try using a more recent base image, or just remove the date from the one you are using, which will pull a newer image. (Like balenalib/%%BALENA_MACHINE_NAME%%-debian:stretch) either way, you will likely need to do some trial and error to get the Dockerfile to build with the new base image.