I have previously ran an instance of ORS on my personal Mac and it ran flawlessly. However, I’ve decided to move the server to a dedicated Raspberry pi 3 (ARM6) running ubuntu server OS and I’m unable to get it started (docker-compose up). The error that I’m getting is ‘exec user process caused: exec format error’ with exit code 1.
I’ve done some research and posts are suggesting that it’s because the docker image I’ve pulled is not build for the ARM6 architecture, though the installation page suggests that ORS does supports ubuntu.
Does anyone has any experience with this that could help me out over here? Thanks in advance!
Marc
amandus
September 29, 2021, 8:16am
2
Hi @Knockerclot ,
since some weeks we have the option to specify the user id that ors is running with:
related changes:
GIScience:master
← GIScience:dockerfile-user
opened 04:39PM - 17 Jun 21 UTC
### Pull Request Checklist
- [x] 1. I have [**rebased**](https://github.com/G… IScience/openrouteservice/blob/master/CONTRIBUTE.md#pull-request-guidelines) the latest version of the master branch into my feature branch and all conflicts have been resolved.
- [ ] 2. I have added information about the change/addition to functionality to the CHANGELOG.md file under the [Unreleased] heading.
- ~[ ] 3. I have documented my code using JDocs tags.~
- ~[ ] 4. I have removed unnecessary commented out code, imports and System.out.println statements.~
- ~[ ] 5. I have written JUnit tests for any new methods/classes and ensured that they pass.~
- ~[ ] 6. I have created API tests for any new functionality exposed to the API.~
- ~[ ] 7. If changes/additions are made to the app.config file, I have added these to the app.config wiki page on github along with a short description of what it is for, and documented this in the Pull Request (below).~
- ~[ ] 8. I have built graphs with my code of the Heidelberg.osm.gz file and run the api-tests with all test passing~
- ~[ ] 9. I have referenced the Issue Number in the Pull Request (if the changes were from an issue).~
- ~[ ] 10. For new features or changes involving building of graphs, I have tested on a larger dataset (at least Germany) and the graphs build without problems (i.e. no out-of-memory errors).~
- ~[ ] 11. For new features or changes involving the graphbuilding process (i.e. changing encoders, updating the importer etc.), I have generated longer distance routes for the affected profiles with different options (avoid features, max weight etc.) and compared these with the routes of the same parameters and start/end points generated from the current live ORS. If there are differences then the reasoning for these **MUST** be documented in the pull request.~
- [x] 12. I have written in the Pull Request information about the changes made including their intended usage and why the change was needed.
- ~[ ] 13. For changes touching the API documentation, i have tested that the API playground [renders correctly](https://gitlab.gistools.geog.uni-heidelberg.de/giscience/openrouteservice-infrastructure/ors-docs-api#test-new-ors-documentation).~
Fixes no current issue.
### Information about the changes
- Key functionality added: allow non-root/sudo users to run ors through docker
- Reason for change: users without root/sudo access couldn't run the ors through docker as it created all files as root
### Examples and reasons for differences between live ORS routes and those generated from this pull request
- none
### Required changes to app.config (if applicable)
- none
GIScience:master
← GIScience:fix-default-docker-user
opened 10:31AM - 27 Jul 21 UTC
### Pull Request Checklist
- [x] 1. I have [**rebased**][rebase] the latest v… ersion of the master branch into my feature branch and all conflicts have been resolved.
- [ ] 2. I have added information about the change/addition to functionality to the CHANGELOG.md file under the [Unreleased] heading.
- [ ] 3. I have documented my code using JDocs tags.
- [ ] 4. I have removed unnecessary commented out code, imports and System.out.println statements.
- [ ] 5. I have written JUnit tests for any new methods/classes and ensured that they pass.
- [ ] 6. I have created API tests for any new functionality exposed to the API.
- [ ] 7. If changes/additions are made to the app.config file, I have added these to the [app.config documentation][config] along with a short description of what it is for, and documented this in the Pull Request (below).
- [ ] 8. I have built graphs with my code of the Heidelberg.osm.gz file and run the api-tests with all test passing
- [ ] 9. I have referenced the Issue Number in the Pull Request (if the changes were from an issue).
- [ ] 10. For new features or changes involving building of graphs, I have tested on a larger dataset (at least Germany) and the graphs build without problems (i.e. no out-of-memory errors).
- [ ] 11. For new features or changes involving the graphbuilding process (i.e. changing encoders, updating the importer etc.), I have generated longer distance routes for the affected profiles with different options (avoid features, max weight etc.) and compared these with the routes of the same parameters and start/end points generated from the current live ORS. If there are differences then the reasoning for these **MUST** be documented in the pull request.
- [ ] 12. I have written in the Pull Request information about the changes made including their intended usage and why the change was needed.
- [ ] 13. For changes touching the API documentation, i have tested that the API playground [renders correctly][api].
### Information about the changes
Fix docker-compose.yml to use root user as default
This might have to do with your issue.
@adam already tinkered with ors on raspberry pi, but he is currently on vacation.
If the above does not help, he will reply next monday.
Best regards
adam
October 4, 2021, 9:49am
3
Hi @Knockerclot
ors definitely works with ubuntu as that is what we use on our servers (and my laptop), and is what we recommend people to use. Have you made any modifications to the docker-compose file?
Also, is the error coming from the host system, or from within the docker container?
nils
October 4, 2021, 1:01pm
4
I think the problem here is the architecture. ors builds images on/for x64, not for arm6. afaik it’s possible to even cross-compile images for other archs on a x64 machine with docker buildx
, in case you wanna have some “fun”…
honestly though @Knockerclot I’d try a source build on your raspberry pi and run tomcat natively instead of docker.
ha, just seeing you already use dockerx: openrouteservice/build-publish.yml at 0feda7cdc693fec643e23044fb23fd8236b7aeb9 · GIScience/openrouteservice · GitHub . well, then it might be pretty to try and add linux/arm/v6,
to the build architectures…