apache / apache/ponymail

Cannot build dockerfile - ES version hard to find and EOL

Open
#550 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
80
Forks
32
PR merge metrics
No merged PRs in 30d

Description

```
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
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?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with dockerfiles/debian/, then inspect requirements.txt and setup.py to identify the expected Elasticsearch version and setup path. Reproduce the Docker build and the reported client error before checking the project’s Elasticsearch compatibility. Done should include a reproducible build with a supported version and documentation for the required setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, elasticsearch
Domain
databases, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.