postgis / docker-postgis

Docker image for PostGIS
https://hub.docker.com/r/postgis/postgis/
MIT License
1.39k stars 466 forks source link

alpine3.14 + postgis2.5 #244

Closed ImreSamu closed 3 years ago

ImreSamu commented 3 years ago

experiment for fix : https://github.com/postgis/docker-postgis/issues/242

ImreSamu commented 3 years ago

my best effort: https://github.com/postgis/docker-postgis/runs/2937119700?check_suite_focus=true

Run tests: 128
Failed: 6
make: *** [Makefile:307: check] Error 6
phillipross commented 3 years ago

as always, thanks for the effort @ImreSamu

Thus far I got about as far as you, though I still use the postgis source directly from github.

I update to llvm11, and then add gettext-dev package, then run gettextize before autogen. The invocation of gettextize fails due to not wanting to run non-interactively, but I think it creates the proper paths which autogen requires to run properly. The build continues after that, but fails on the same regression tests which I see your builds failing at. I imagine this might be something happening due to the llvm11 update(?)

phillipross commented 3 years ago

Also, I see that postgresql 9.5 is end-of-life. If it becomes more effort to maintain or needs special-case treatment, it's probably better to simply remove it. The older images, of course, will still be on dockerhub, but they simply won't be updated. This looks to be how the official postgresql images operates.

ImreSamu commented 3 years ago

I imagine this might be something happening due to the llvm11 update(?)

(based on my local test ) Probably GEOS 3.9 problem

PostGIS 2.5.5 AND

Also, I see that postgresql 9.5 is end-of-life.

yes .. the postgres:9.5 docker image the same ..

I will remove ..

ImreSamu commented 3 years ago

now: I have some problems with the (new) dumprestore test ... ( "Failed: 1" ) because I try to add "all regression" tests: https://github.com/postgis/postgis/blob/b3874ecb488c3e04bcc26f701864a188788c472a/ci/debbie/postgis_regress.sh#L105

and with

$ git diff Dockerfile
diff --git a/12-2.5/alpine/Dockerfile b/12-2.5/alpine/Dockerfile
index a4c6f02..0223423 100644
--- a/12-2.5/alpine/Dockerfile
+++ b/12-2.5/alpine/Dockerfile
@@ -82,10 +82,10 @@ RUN set -eux \
     && chown -R postgres:postgres /tempdb \
     && su postgres -c 'pg_ctl -D /tempdb init' \
     && su postgres -c 'pg_ctl -D /tempdb start' \
-    && cd regress \
+    #&& cd regress \
     && make -j$(nproc) check RUNTESTFLAGS=--extension   PGUSER=postgres \
-    #&& make -j$(nproc) check RUNTESTFLAGS=--dumprestore PGUSER=postgres \
-    #&& make garden                                      PGUSER=postgres \
+    && make -j$(nproc) check RUNTESTFLAGS=--dumprestore PGUSER=postgres \
+    && make garden                                      PGUSER=postgres \
     && su postgres -c 'pg_ctl -D /tempdb --mode=immediate stop' \
     && rm -rf /tempdb \
     && rm -rf /tmp/pgis_reg \

I receive:

 ok 
 loader/Basic .... ok 
 loader/Projected ..... ok 
 loader/BasicCopy .... ok 
 loader/BasicFilename .... ok 
 loader/BasicOutDB .... ok 
 loader/Tiled10x10 .... ok 
 loader/Tiled10x10Copy .... ok 
 loader/Tiled8x8 .... ok 
 clean .. ok 
 uninstall .. ok (4725)

Run tests: 92
Failed: 1
make[3]: Leaving directory '/usr/src/postgis/raster/test/regress'
make[3]: *** [Makefile:182: check] Error 1
make[2]: *** [Makefile:18: check] Error 2
make[2]: Leaving directory '/usr/src/postgis/raster/test'
make[1]: Leaving directory '/usr/src/postgis/raster'
make[1]: *** [Makefile:69: check] Error 2
make: *** [GNUmakefile:16: check] Error 1
phillipross commented 3 years ago

now: I have some problems with the (new) dumprestore test ... ( "Failed: 1" ) because I try to add "all regression" tests: https://github.com/postgis/postgis/blob/b3874ecb488c3e04bcc26f701864a188788c472a/ci/debbie/postgis_regress.sh#L105

and with

$ git diff Dockerfile
diff --git a/12-2.5/alpine/Dockerfile b/12-2.5/alpine/Dockerfile
index a4c6f02..0223423 100644
--- a/12-2.5/alpine/Dockerfile
+++ b/12-2.5/alpine/Dockerfile
@@ -82,10 +82,10 @@ RUN set -eux \
     && chown -R postgres:postgres /tempdb \
     && su postgres -c 'pg_ctl -D /tempdb init' \
     && su postgres -c 'pg_ctl -D /tempdb start' \
-    && cd regress \
+    #&& cd regress \
     && make -j$(nproc) check RUNTESTFLAGS=--extension   PGUSER=postgres \
-    #&& make -j$(nproc) check RUNTESTFLAGS=--dumprestore PGUSER=postgres \
-    #&& make garden                                      PGUSER=postgres \
+    && make -j$(nproc) check RUNTESTFLAGS=--dumprestore PGUSER=postgres \
+    && make garden                                      PGUSER=postgres \
     && su postgres -c 'pg_ctl -D /tempdb --mode=immediate stop' \
     && rm -rf /tempdb \
     && rm -rf /tmp/pgis_reg \

I receive:

 ok 
 loader/Basic .... ok 
 loader/Projected ..... ok 
 loader/BasicCopy .... ok 
 loader/BasicFilename .... ok 
 loader/BasicOutDB .... ok 
 loader/Tiled10x10 .... ok 
 loader/Tiled10x10Copy .... ok 
 loader/Tiled8x8 .... ok 
 clean .. ok 
 uninstall .. ok (4725)

Run tests: 92
Failed: 1
make[3]: Leaving directory '/usr/src/postgis/raster/test/regress'
make[3]: *** [Makefile:182: check] Error 1
make[2]: *** [Makefile:18: check] Error 2
make[2]: Leaving directory '/usr/src/postgis/raster/test'
make[1]: Leaving directory '/usr/src/postgis/raster'
make[1]: *** [Makefile:69: check] Error 2
make: *** [GNUmakefile:16: check] Error 1

I saw that they had been commented out. But were these tests also run against prior images?

ImreSamu commented 3 years ago

But were these tests also run against prior images?

I have re-checked with the older - (postgres:12-alpine(3.13)) based image.

And as I see - the problem is not new, it existed already 1 month ago.

IMHO: ready to merge .. If you want!

My test info:

Dockerfile changes

$ git diff Dockerfile
diff --git a/12-2.5/alpine/Dockerfile b/12-2.5/alpine/Dockerfile
index 80ae630..c654b89 100644
--- a/12-2.5/alpine/Dockerfile
+++ b/12-2.5/alpine/Dockerfile
@@ -1,4 +1,4 @@
-FROM postgres:12-alpine
+FROM postgres:12-alpine@sha256:c8b6b4807ada769b0fb46d1e52fb9b307129c2425a468bc46045d69365a61334

 LABEL maintainer="PostGIS Project - https://postgis.net"

@@ -54,8 +54,9 @@ RUN set -ex \
     && chown -R postgres:postgres /tempdb \
     && su postgres -c 'pg_ctl -D /tempdb init' \
     && su postgres -c 'pg_ctl -D /tempdb start' \
-    && cd regress \
+    #&& cd regress \
     && make -j$(nproc) check RUNTESTFLAGS=--extension PGUSER=postgres \
+    && make -j$(nproc) check RUNTESTFLAGS=--dumprestore PGUSER=postgres \
     && su postgres -c 'pg_ctl -D /tempdb --mode=immediate stop' \
     && rm -rf /tempdb \
     && rm -rf /tmp/pgis_reg \

log: Failed=1

ok 
 loader/Basic .... ok 
 loader/Projected ..... ok 
 loader/BasicCopy .... ok 
 loader/BasicFilename .... ok 
 loader/BasicOutDB .... ok 
 loader/Tiled10x10 .... ok 
 loader/Tiled10x10Copy .... ok 
 loader/Tiled8x8 .... ok 
 clean .. ok 
 uninstall .. ok (4725)

Run tests: 92
Failed: 1
make[3]: *** [Makefile:182: check] Error 1
make[3]: Leaving directory '/usr/src/postgis/raster/test/regress'
make[2]: Leaving directory '/usr/src/postgis/raster/test'
make[2]: *** [Makefile:18: check] Error 2
make[1]: Leaving directory '/usr/src/postgis/raster'
make[1]: *** [Makefile:69: check] Error 2
make: *** [GNUmakefile:16: check] Error 1

base image :

$ docker run -it --rm postgres:12-alpine@sha256:c8b6b4807ada769b0fb46d1e52fb9b307129c2425a468bc46045d69365a61334 sh -c "cat /etc/os-release && set "
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.13.5
PRETTY_NAME="Alpine Linux v3.13"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
HOME='/root'
HOSTNAME='975ab5688b9c'
IFS='   
'
LANG='en_US.utf8'
LINENO=''
OPTIND='1'
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PGDATA='/var/lib/postgresql/data'
PG_MAJOR='12'
PG_SHA256='8490741f47c88edc8b6624af009ce19fda4dc9b31c4469ce2551d84075d5d995'
PG_VERSION='12.7'
PPID='0'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
SHLVL='1'
TERM='xterm'