cisagov / trustymail

Scan domains and return data based on trustworthy email best practices
Creative Commons Zero v1.0 Universal
185 stars 31 forks source link

docker build & run does not see trustymail inside itself. #119

Closed FlorianHeigl closed 3 years ago

FlorianHeigl commented 3 years ago

💥 Regression Report

The docker container seems to not come up with a working trustymail setup:

++ pwd
+ docker run --rm -it --name trustymail -v /home/floh/trustymail:/app trustymail/cli example.com
Traceback (most recent call last):
  File "/usr/local/bin/trustymail", line 4, in <module>
    __import__('pkg_resources').require('trustymail==0.7.5')
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3257, in <module>
    def _initialize_master_working_set():
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3240, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3269, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 582, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 899, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 785, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'trustymail==0.7.5' distribution was not found and is required by the application

Last working version

Worked up to version: I don't know but must have been fine earlier.

Stopped working in version:

To Reproduce

Steps to reproduce the behavior:

  181  git clone https://github.com/cisagov/trustymail.git
  182  cd trustymail/
  183  ls
  184  ./run example.com

Expected behavior

container builds, runs trustymail

Any helpful log output

Paste the results here:

floh@blackbox:~/trustymail$ ./run example.com
+ docker build -t trustymail/cli .
Sending build context to Docker daemon  562.7kB
Step 1/8 : FROM python:3
3: Pulling from library/python
d6ff36c9ec48: Pull complete 
c958d65b3090: Pull complete 
edaf0a6b092f: Pull complete 
80931cf68816: Pull complete 
bc1b8aca3825: Pull complete 
edfe96a4dd20: Pull complete 
4e7c0e94bdeb: Pull complete 
8dffdfc294e3: Pull complete 
036c588c629e: Pull complete 
Digest: sha256:2c1045587e4452d49544c6dce92efe21c3b4b33864cfb56fdee66a2c8585c769
Status: Downloaded newer image for python:3
 ---> 79cc46abd78d
Step 2/8 : WORKDIR /app
 ---> Running in c44b33a8ada4
Removing intermediate container c44b33a8ada4
 ---> 89d0de93c5a1
Step 3/8 : COPY requirements.txt requirements.txt
 ---> a6a84fd0c998
Step 4/8 : RUN pip install --no-cache-dir -r requirements.txt
 ---> Running in 3c50c9e9c987
Collecting dnspython>=1.15.0
  Downloading dnspython-2.0.0-py3-none-any.whl (208 kB)
Collecting docopt>=0.6.2
  Downloading docopt-0.6.2.tar.gz (25 kB)
Collecting publicsuffix>=1.1.0
  Downloading publicsuffix-1.1.1.tar.gz (66 kB)
Collecting py3dns>=3.1.0
  Downloading py3dns-3.2.1.tar.gz (30 kB)
Collecting pyspf==2.0.11
  Downloading pyspf-2.0.11.tar.gz (63 kB)
Collecting requests>=2.18.4
  Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting chardet<4,>=3.0.2
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
Collecting idna<3,>=2.5
  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting certifi>=2017.4.17
  Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
Building wheels for collected packages: docopt, publicsuffix, py3dns, pyspf
  Building wheel for docopt (setup.py): started
  Building wheel for docopt (setup.py): finished with status 'done'
  Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13704 sha256=9090593914e75a2c45972939e1c533ca1b5f65013f4645cf3ab97a820f281c9f
  Stored in directory: /tmp/pip-ephem-wheel-cache-ya52_v_2/wheels/56/ea/58/ead137b087d9e326852a851351d1debf4ada529b6ac0ec4e8c
  Building wheel for publicsuffix (setup.py): started
  Building wheel for publicsuffix (setup.py): finished with status 'done'
  Created wheel for publicsuffix: filename=publicsuffix-1.1.1-py3-none-any.whl size=64131 sha256=fa167724cafdb0a41cf3a7cbc767b3f281e8b7b0e28cd5e09f77f3626715b986
  Stored in directory: /tmp/pip-ephem-wheel-cache-ya52_v_2/wheels/db/36/40/38c901aec542f38197f630f6a76c9432dbff8b469505e85ad1
  Building wheel for py3dns (setup.py): started
  Building wheel for py3dns (setup.py): finished with status 'done'
  Created wheel for py3dns: filename=py3dns-3.2.1-py3-none-any.whl size=20839 sha256=9a57d2cd738437d96866552c1ee0db2abe7535843426655367a91b7908736d55
  Stored in directory: /tmp/pip-ephem-wheel-cache-ya52_v_2/wheels/04/6c/59/20cadeb949daa0f469951136be59a742cef8de62cef2e8d288
  Building wheel for pyspf (setup.py): started
  Building wheel for pyspf (setup.py): finished with status 'done'
  Created wheel for pyspf: filename=pyspf-2.0.11-py3-none-any.whl size=25651 sha256=1cede736d23f6e29d6cfc5dbcb56114e23c3b61e9c765df688762045c27dcfe6
  Stored in directory: /tmp/pip-ephem-wheel-cache-ya52_v_2/wheels/85/cc/60/b2ed814171b4a26023f5a92d162b0a722e6cfb92cf4a45d6b7
Successfully built docopt publicsuffix py3dns pyspf
Installing collected packages: dnspython, docopt, publicsuffix, py3dns, pyspf, chardet, urllib3, idna, certifi, requests
Successfully installed certifi-2020.6.20 chardet-3.0.4 dnspython-2.0.0 docopt-0.6.2 idna-2.10 publicsuffix-1.1.1 py3dns-3.2.1 pyspf-2.0.11 requests-2.24.0 urllib3-1.25.10
Removing intermediate container 3c50c9e9c987
 ---> 3436cccd9d0b
Step 5/8 : COPY . .
 ---> 2f3fff23e886
Step 6/8 : RUN pip install --editable .
 ---> Running in 298ef1f379ef
Obtaining file:///app
Requirement already satisfied: dnspython>=1.15.0 in /usr/local/lib/python3.8/site-packages (from trustymail==0.7.5) (2.0.0)
Requirement already satisfied: docopt>=0.6.2 in /usr/local/lib/python3.8/site-packages (from trustymail==0.7.5) (0.6.2)
Requirement already satisfied: publicsuffix>=1.1.0 in /usr/local/lib/python3.8/site-packages (from trustymail==0.7.5) (1.1.1)
Requirement already satisfied: py3dns>=3.1.0 in /usr/local/lib/python3.8/site-packages (from trustymail==0.7.5) (3.2.1)
Requirement already satisfied: pyspf==2.0.11 in /usr/local/lib/python3.8/site-packages (from trustymail==0.7.5) (2.0.11)
Requirement already satisfied: requests>=2.18.4 in /usr/local/lib/python3.8/site-packages (from trustymail==0.7.5) (2.24.0)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.8/site-packages (from requests>=2.18.4->trustymail==0.7.5) (1.25.10)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/site-packages (from requests>=2.18.4->trustymail==0.7.5) (2.10)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/site-packages (from requests>=2.18.4->trustymail==0.7.5) (2020.6.20)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.8/site-packages (from requests>=2.18.4->trustymail==0.7.5) (3.0.4)
Installing collected packages: trustymail
  Running setup.py develop for trustymail
Successfully installed trustymail
Removing intermediate container 298ef1f379ef
 ---> 103355f40b74
Step 7/8 : ENTRYPOINT ["trustymail"]
 ---> Running in 61c998c008af
Removing intermediate container 61c998c008af
 ---> d26508ef6a83
Step 8/8 : CMD ["--help"]
 ---> Running in cbf46e727fd4
Removing intermediate container cbf46e727fd4
 ---> bf8f65ba155f
Successfully built bf8f65ba155f
Successfully tagged trustymail/cli:latest
++ pwd
+ docker run --rm -it --name trustymail -v /home/floh/trustymail:/app trustymail/cli example.com
Traceback (most recent call last):
  File "/usr/local/bin/trustymail", line 4, in <module>
    __import__('pkg_resources').require('trustymail==0.7.5')
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3257, in <module>
    def _initialize_master_working_set():
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3240, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3269, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 582, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 899, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 785, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'trustymail==0.7.5' distribution was not found and is required by the application