apache / incubator-ponymail

Apache Pony Mail (Incubating) - Email for Ponies & People
http://ponymail.incubator.apache.org/
Other
80 stars 30 forks source link

Cannot build dockerfile - ES version hard to find and EOL #550

Open chibenwa opened 3 years ago

chibenwa commented 3 years ago
cd dockerfiles/debian/
$ docker build .
Sending build context to Docker daemon  3.072kB
Step 1/13 : FROM debian
latest: Pulling from library/debian
df5590a8898b: Pull complete 
Digest: sha256:b6a47ddbc1de53e0024d19908f5ef7b3d870686f1234fdb2d19770e097db1575
Status: Downloaded newer image for debian:latest
 ---> a178460bae57
Step 2/13 : FROM elasticsearch
manifest for elasticsearch:latest not found: manifest unknown: manifest unknown

https://hub.docker.com/_/elasticsearch?tab=tags&page=1&name=latest shouws that the tag latest do not exists and that the dockerfile is broken.

Note that specifying 7.14.1 explicitly also failed:

Step 4/13 : RUN apt-get update
 ---> Running in 09f091f378a4
/bin/sh: apt-get: command not found
The command '/bin/sh -c apt-get update' returned a non-zero code: 127

To be fair, I would expect, if non trivial setup is required to build this docker (dockerbuild not enough) to have a documentation of how to do it.

BTW using latest (a mutable tag) is a poor practice - making the builds non - reproducible...

Not to mention that the ElasticSearch version that is supported should be documented: there are subtle differences in APIs across ES versions that might affect applicative behaviours, and sometime be strictly incompatible. Edit - reading requirements.txt felt non-obvious to me. Trying again with 5.6.

Okay, I got all I need, setting up Pony Mail...
Traceback (most recent call last):
  File "setup.py", line 482, in <module>
    DB_VERSION=es.info()['version']['number']
  File "/usr/local/lib/python3.5/dist-packages/elasticsearch/client/utils.py", line 301, in _wrapped
    return func(*args, params=params, headers=headers, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/elasticsearch/client/__init__.py", line 292, in info
    "GET", "/", params=params, headers=headers
  File "/usr/local/lib/python3.5/dist-packages/elasticsearch/transport.py", line 413, in perform_request
    _ProductChecker.raise_error(self._verified_elasticsearch)
  File "/usr/local/lib/python3.5/dist-packages/elasticsearch/transport.py", line 630, in raise_error
    raise UnsupportedProductError(message)
elasticsearch.exceptions.UnsupportedProductError: The client noticed that the server is not Elasticsearch and we do not support this unknown product

The maintainer mention of the dockerfile should IMO be removed or modified to be Apache Pony Mail incubating - and not be an individual. I would expect the Pony mail project to feel responsible for the docker distribution, not just that just one guy.

I'm giving up. I was just interested in the ElasticSearch schemas, which I found in setup.py (I wanted to see how headers are made searchable because it is a problem I struggle with on Apache James - Pony mail only store specific headers but skips the generic case - search by name+value).

I could be considering PonyMail for displaying mailing lists archives, but using an ELasticSearch release that went end of life on 2019-03-11 -over 2 years - is definitly a stopper to me. Do the project have a plan to upgrade to newer ElasticSearch versions?