osm-fr / osmose-backend

Part of osmose that runs the analysis, and send the results to the frontend.
GNU General Public License v3.0
92 stars 115 forks source link

GDAL missing in Docker #1186

Closed archie83 closed 3 years ago

archie83 commented 3 years ago

Hi, It seems that some analysers require ogr2ogr, part of GDAL. Example: docker-compose --project-name monaco run --rm backend ./osmose_run.py --country=monaco --analyser=merge_man_made_FR ... 2021-02-19 09:30:49 Analyser_Merge.py:785 sql ogr2ogr -f PostgreSQL 'PG:host=postgis dbname=osmose user=osmose password=-osmose- options=--search_path=monaco,public ' -lco SCHEMA=osmose -nln man_made_fr -lco OVERWRITE=yes -lco GEOMETRY_NAME=geom -lco UNLOGGED=ON -t_srs EPSG:4326 '/tmp/tmpyhegw70k' sh: 1: ogr2ogr: not found 2021-02-19 09:30:50 error: error on analyse merge_man_made_FR... 2021-02-19 09:30:50 Traceback (most recent call last): 2021-02-19 09:30:50 File "./osmose_run.py", line 262, in execc 2021-02-19 09:30:50 analyser_obj.analyser() 2021-02-19 09:30:50 File "/opt/osmose-backend/analysers/Analyser_Merge_Dynamic.py", line 44, in analyser 2021-02-19 09:30:50 analyser_obj.analyser() 2021-02-19 09:30:50 File "/opt/osmose-backend/analysers/Analyser_Osmosis.py", line 193, in analyser 2021-02-19 09:30:50 self.analyser_osmosis_common() 2021-02-19 09:30:50 File "/opt/osmose-backend/analysers/Analyser_Merge.py", line 1134, in analyser_osmosis_common 2021-02-19 09:30:50 table = self.load.run(self, self.parser, self.conflate, self.config.db_user, self.class.name.lower()[15:], self.analyser_version()) 2021-02-19 09:30:50 File "/opt/osmose-backend/analysers/AnalyserMerge.py", line 788, in run 2021-02-19 09:30:50 parser.import(table, self.srid, osmosis) 2021-02-19 09:30:50 File "/opt/osmose-backend/analysers/AnalyserMerge.py", line 723, in import 2021-02-19 09:30:50 raise Exception("ogr2ogr error") 2021-02-19 09:30:50 Exception: ogr2ogr error

frodrigo commented 3 years ago

Yes. It was left because it is only used for IGN data in France. But yes, we can add it to the docker.

archie83 commented 3 years ago

Sorry, but it doesn't work for me:

ogr2ogr -f PostgreSQL 'PG:host=postgis dbname=osmose user=osmose password=-osmose- options=--search_path=monaco,public ' -lco SCHEMA=osmose -nln man_made_fr -lco OVERWRITE=yes -lco GEOMETRY_NAME=geom -lco UNLOGGED=ON -t_srs EPSG:4326 '/tmp/tmpxu0y8dtn' 
Warning 1: File /tmp/tmpxu0y8dtn has GPKG application_id, but non conformant file extension
ERROR 1: ERROR:  column s.consrc does not exist
LINE 1: ...nrelid = c.oid AND a.attnum = ANY (s.conkey) AND (s.consrc L...
                                                             ^
HINT:  Perhaps you meant to reference the column "s.conkey" or the column "s.conbin".
ERROR 1: ERROR:  current transaction is aborted, commands ignored until end of transaction block

I found this post about the same error: https://github.com/OSGeo/gdal/issues/1692

Maybe the current combination of PostgreSQL/GDAL triggers this issue, and a higher version of GDAL is needed.

frodrigo commented 3 years ago

Try to downgrade the version of postgres here https://github.com/osm-fr/osmose-backend/blob/master/docker/docker-compose.yml#L9

archie83 commented 3 years ago

I tried to downgrade to 12-3.1-alpine and 11-3.1-alpine, but it doesn't work at all:

+ pg_isready --host=postgis
postgis:5432 - no response
frodrigo commented 3 years ago

You have to reset the database content docker-compose down -v

archie83 commented 3 years ago

No change. Anyway, in the meantime I had installed osmose-backend outside of docker, so personally I don't need any more this issue to be fixed. Don't spend too much time on it if nobody else need it.

archie83 commented 3 years ago

Since the problem is not solved, I am considering installing Debian in Virtualbox instead of using Docker. Is Debian 10 suitable?

frodrigo commented 3 years ago

Yes, the Docker is in Debian.