在树莓派64位的OS上是无法使用wiringpi的
官方编译的wiringpi在32位下编写的,因此在64位系统中运行会出现如下错误:
虽然有大神提供了自己编译的64位wiringpi,但是依然不行,资料如下:
https://github.com/guation/WiringPi-arm64
https://gitee.com/guation/WiringPi-arm64
修改DockerFile
一般docker运行java程序是会使用openjdk:8的镜像,但是树莓派虽然是64位硬件,但wiringpi只能运行在32位的OS中,因此若需要操作gpio则只能使用32位的OS。再加上openjdk:8并没有提供arm版本,因此需要指定成armv7版本的jdk镜像才能成功打包docker镜像:
#FROM openjdk:8 #指定armv7版本的java8 FROM balenalib/armv7hf-openjdk
在DockerFile中引入WiringPi
COPY ./wiringpi-2.61-1-armhf.deb /wiringpi-2.61-1-armhf.deb RUN dpkg -i /wiringpi-2.61-1-armhf.deb