0

On Raspberry Pi, I got an error when I tried to set up ODK-X Sync Endpoint.

I referred to the instruction from https://docs.odk-x.org/sync-endpoint-manual-setup/

This is the command I ran:

$ mvn clean install

The error message is as below:

Failed to execute goal io.fabric8:docker-maven-plugin:0.34.1:build (start) on project sync-endpoint-docker-swarm: Unable to pull 'tomcat:8.5' : no matching manifest for linux/arm/v7 in the manifest list entries

How can I solve this problem?

1 Answers1

0

The error is fairly clear: tomcat:8.5, which sync-endpoint depends on, does not provide a manifest for the armv7 architecture. You can see this on the page for tomcat's 8.5 tag, showing that it only provides images for linux/amd64 and linux/arm64/v8.

If you need to use that Dockerfile as is and cannot change the tomcat version used, you will need to use a device with a matching architecture. If you are able to modify the Dockerfile and are willing to use a different version of tomcat, it appears that there are other tags which do support linux/arm32/v7.

futur
  • 1,673
  • 5
  • 20
  • Thank you for the answer. I found the Dockerfile but I don't know how it works. Can you help me modify the Dockerfile? I just changed the image name tomcat:8.5 but I got an error. Dockerfile: `FROM gordonff/rpi-tomcat COPY init.sh /tmp/init.sh COPY server.xml conf/ COPY target/dependency/sync-endpoint-war.war / RUN chmod +x /tmp/init.sh && \ rm -rf /usr/local/tomcat/webapps/ROOT && \ unzip /sync-endpoint-war.war -d /usr/local/tomcat/webapps/ROOT && \ rm /sync-endpoint-war.war EXPOSE 8443 ENTRYPOINT ["/tmp/init.sh"] CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]` – sillius Aug 23 '21 at 04:22
  • This is the error message I got. : `Failed to execute goal io.fabric8:docker-maven-plugin:0.34.1:build (start) on project sync-endpoint-docker-swarm: Unable to build image [odk/sync-endpoint] : "The command '/bin/sh -c chmod +x /tmp/init.sh && rm -rf /usr/local/tomcat/webapps/ROOT && unzip /sync-endpoint-war.war -d /usr/local/tomcat/webapps/ROOT && rm /sync-endpoint-war.war' returned a non-zero code: 127"` – sillius Aug 24 '21 at 11:37
  • That's a fairly long string of commands; one of them threw an error somewhere. The only way to find out what it is would be to call them separately. I'd assume the different image you're using would have a slightly different file structure, leading to issues somewhere. – futur Aug 24 '21 at 16:21