在树莓派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