sethblack / python-seo-analyzer

An SEO tool that analyzes the structure of a site, crawls the site, count words in the body of the site and warns of any technical SEO issues.
Other
1.18k stars 305 forks source link

When trying to build Dockerfile, we get error "Error: Please make sure the libxml2 and libxslt development packages are installed." #88

Open alberto56 opened 2 years ago

alberto56 commented 2 years ago

Describe the bug

Trying to build Dockerfile results in the error:

Error: Please make sure the libxml2 and libxslt development packages are installed.

To Reproduce

docker build --progress=plain .

#1 [internal] load build definition from Dockerfile
#1 sha256:ca1a3ea44b16c6c0ed281e17b8be63ee91165143750d4d5baaa06a6304293c42
#1 transferring dockerfile: 162B done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 sha256:7104b95f2931ddf29b0d17d59efe21cbb4f726aaf604f361fa3536a5b63b18d2
#2 transferring context: 2B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/library/python:3-alpine
#3 sha256:64ad20c706f0d0f73eed262cd381a08bc4d90b5012dcc541110fc95d1f8eb2f5
#3 DONE 4.4s

#6 [internal] load build context
#6 sha256:27c2c9293847f00a8c49645172e6dd67a9b6eba343a3171dbf00cabfada82b97
#6 transferring context: 240.96kB 0.0s done
#6 DONE 0.0s

#4 [1/4] FROM docker.io/library/python:3-alpine@sha256:7099d74f22c2d7a597875c3084e840846ca294ad01da1e845b0154100a6ac15b
#4 sha256:cc28dc005d2eca7ba4c0b767bbf501395dd4476d63bb3faf60c9816bd69f6432
#4 resolve docker.io/library/python:3-alpine@sha256:7099d74f22c2d7a597875c3084e840846ca294ad01da1e845b0154100a6ac15b done
#4 sha256:7099d74f22c2d7a597875c3084e840846ca294ad01da1e845b0154100a6ac15b 1.65kB / 1.65kB done
#4 sha256:052d3e34bb778210138247340bd82f18fc45fb506e89ff0ea6c182e3f98593a7 1.37kB / 1.37kB done
#4 sha256:60bc44358912526bc4bf5dd6199cd731e876893ddef8513dee02fed271c7bd05 7.08kB / 7.08kB done
#4 sha256:148d739a8e6b9342daa1f5b428d3a3c6118f340f21df28c16e06f918ef150147 0B / 2.71MB 0.1s
#4 sha256:582f36864e09c64d3e23d060e609187b7c702f079cd984b2be6b46e2a83b3c71 0B / 668.15kB 0.1s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 0B / 12.35MB 0.1s
#4 sha256:148d739a8e6b9342daa1f5b428d3a3c6118f340f21df28c16e06f918ef150147 2.71MB / 2.71MB 0.5s
#4 sha256:148d739a8e6b9342daa1f5b428d3a3c6118f340f21df28c16e06f918ef150147 2.71MB / 2.71MB 0.5s done
#4 sha256:582f36864e09c64d3e23d060e609187b7c702f079cd984b2be6b46e2a83b3c71 668.15kB / 668.15kB 0.6s done
#4 extracting sha256:148d739a8e6b9342daa1f5b428d3a3c6118f340f21df28c16e06f918ef150147 0.1s
#4 sha256:044058648f3a966c82116fe875c914c863c0a2cc7ea10ece1e75386197b8a7a0 0B / 234B 0.6s
#4 sha256:46eb628fede2974e3dee1a129a5f1906cb6d42eb6e981af3a34810567a60ecf6 0B / 2.87MB 0.6s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 1.05MB / 12.35MB 0.7s
#4 extracting sha256:148d739a8e6b9342daa1f5b428d3a3c6118f340f21df28c16e06f918ef150147 0.1s done
#4 extracting sha256:582f36864e09c64d3e23d060e609187b7c702f079cd984b2be6b46e2a83b3c71 0.1s
#4 extracting sha256:582f36864e09c64d3e23d060e609187b7c702f079cd984b2be6b46e2a83b3c71 0.1s done
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 2.10MB / 12.35MB 1.0s
#4 sha256:044058648f3a966c82116fe875c914c863c0a2cc7ea10ece1e75386197b8a7a0 234B / 234B 1.0s done
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 3.15MB / 12.35MB 1.1s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 4.19MB / 12.35MB 1.2s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 5.24MB / 12.35MB 1.4s
#4 sha256:46eb628fede2974e3dee1a129a5f1906cb6d42eb6e981af3a34810567a60ecf6 1.05MB / 2.87MB 1.4s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 6.29MB / 12.35MB 1.6s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 8.39MB / 12.35MB 1.9s
#4 sha256:46eb628fede2974e3dee1a129a5f1906cb6d42eb6e981af3a34810567a60ecf6 2.87MB / 2.87MB 1.9s done
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 9.44MB / 12.35MB 2.1s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 10.49MB / 12.35MB 2.3s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 11.53MB / 12.35MB 2.6s
#4 sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 12.35MB / 12.35MB 2.6s done
#4 extracting sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956
#4 extracting sha256:81f13c633245010441e09d30ba078b2753389ad7cc1428bfbc54f64eb3ce2956 0.3s done
#4 extracting sha256:044058648f3a966c82116fe875c914c863c0a2cc7ea10ece1e75386197b8a7a0
#4 extracting sha256:044058648f3a966c82116fe875c914c863c0a2cc7ea10ece1e75386197b8a7a0 done
#4 extracting sha256:46eb628fede2974e3dee1a129a5f1906cb6d42eb6e981af3a34810567a60ecf6 0.1s
#4 extracting sha256:46eb628fede2974e3dee1a129a5f1906cb6d42eb6e981af3a34810567a60ecf6 0.1s done
#4 DONE 3.3s

#5 [2/4] WORKDIR /app
#5 sha256:ab37595f8baa0fd3ceecc2248029ec5652d56972339c797855cecd0c7ae5ae3f
#5 DONE 0.1s

#7 [3/4] COPY . /app
#7 sha256:e478db86057002c42ee14550e93eb08a80719ee27f23b15c655a889a902da687
#7 DONE 0.0s

#8 [4/4] RUN python3 setup.py install
#8 sha256:7973305ca98aeb3f29f52989e8748fc8c0d15aaf7b9ea2fb09e36ffb02034fa8
#8 0.585 running install
#8 0.686 running bdist_egg
#8 0.686 running egg_info
#8 0.686 creating pyseoanalyzer.egg-info
#8 0.686 writing pyseoanalyzer.egg-info/PKG-INFO
#8 0.686 writing dependency_links to pyseoanalyzer.egg-info/dependency_links.txt
#8 0.687 writing entry points to pyseoanalyzer.egg-info/entry_points.txt
#8 0.687 writing requirements to pyseoanalyzer.egg-info/requires.txt
#8 0.687 writing top-level names to pyseoanalyzer.egg-info/top_level.txt
#8 0.687 writing manifest file 'pyseoanalyzer.egg-info/SOURCES.txt'
#8 0.691 reading manifest file 'pyseoanalyzer.egg-info/SOURCES.txt'
#8 0.691 reading manifest template 'MANIFEST.in'
#8 0.691 adding license file 'LICENSE'
#8 0.691 writing manifest file 'pyseoanalyzer.egg-info/SOURCES.txt'
#8 0.692 installing library code to build/bdist.linux-aarch64/egg
#8 0.692 running install_lib
#8 0.692 running build_py
#8 0.692 creating build
#8 0.692 creating build/lib
#8 0.692 creating build/lib/seoanalyzer
#8 0.692 copying seoanalyzer/__main__.py -> build/lib/seoanalyzer
#8 0.692 copying seoanalyzer/http.py -> build/lib/seoanalyzer
#8 0.692 copying seoanalyzer/page.py -> build/lib/seoanalyzer
#8 0.693 copying seoanalyzer/analyzer.py -> build/lib/seoanalyzer
#8 0.693 copying seoanalyzer/__init__.py -> build/lib/seoanalyzer
#8 0.693 copying seoanalyzer/stemmer.py -> build/lib/seoanalyzer
#8 0.693 copying seoanalyzer/website.py -> build/lib/seoanalyzer
#8 0.693 creating build/lib/tests
#8 0.693 copying tests/test_http.py -> build/lib/tests
#8 0.693 copying tests/test_page.py -> build/lib/tests
#8 0.693 copying tests/__init__.py -> build/lib/tests
#8 0.693 copying tests/test_analyzer.py -> build/lib/tests
#8 0.694 creating build/lib/seoanalyzer/templates
#8 0.694 copying seoanalyzer/templates/index.html -> build/lib/seoanalyzer/templates
#8 0.694 creating build/bdist.linux-aarch64
#8 0.694 creating build/bdist.linux-aarch64/egg
#8 0.694 creating build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.694 creating build/bdist.linux-aarch64/egg/seoanalyzer/templates
#8 0.695 copying build/lib/seoanalyzer/templates/index.html -> build/bdist.linux-aarch64/egg/seoanalyzer/templates
#8 0.695 copying build/lib/seoanalyzer/__main__.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.695 copying build/lib/seoanalyzer/http.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.695 copying build/lib/seoanalyzer/page.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.695 copying build/lib/seoanalyzer/analyzer.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.695 copying build/lib/seoanalyzer/__init__.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.695 copying build/lib/seoanalyzer/stemmer.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.695 copying build/lib/seoanalyzer/website.py -> build/bdist.linux-aarch64/egg/seoanalyzer
#8 0.696 creating build/bdist.linux-aarch64/egg/tests
#8 0.696 copying build/lib/tests/test_http.py -> build/bdist.linux-aarch64/egg/tests
#8 0.696 copying build/lib/tests/test_page.py -> build/bdist.linux-aarch64/egg/tests
#8 0.697 copying build/lib/tests/__init__.py -> build/bdist.linux-aarch64/egg/tests
#8 0.697 copying build/lib/tests/test_analyzer.py -> build/bdist.linux-aarch64/egg/tests
#8 0.698 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/__main__.py to __main__.cpython-310.pyc
#8 0.698 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/http.py to http.cpython-310.pyc
#8 0.699 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/page.py to page.cpython-310.pyc
#8 0.701 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/analyzer.py to analyzer.cpython-310.pyc
#8 0.702 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/__init__.py to __init__.cpython-310.pyc
#8 0.702 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/stemmer.py to stemmer.cpython-310.pyc
#8 0.703 byte-compiling build/bdist.linux-aarch64/egg/seoanalyzer/website.py to website.cpython-310.pyc
#8 0.703 byte-compiling build/bdist.linux-aarch64/egg/tests/test_http.py to test_http.cpython-310.pyc
#8 0.703 byte-compiling build/bdist.linux-aarch64/egg/tests/test_page.py to test_page.cpython-310.pyc
#8 0.704 byte-compiling build/bdist.linux-aarch64/egg/tests/__init__.py to __init__.cpython-310.pyc
#8 0.704 byte-compiling build/bdist.linux-aarch64/egg/tests/test_analyzer.py to test_analyzer.cpython-310.pyc
#8 0.704 creating build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.704 copying pyseoanalyzer.egg-info/PKG-INFO -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 copying pyseoanalyzer.egg-info/SOURCES.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 copying pyseoanalyzer.egg-info/dependency_links.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 copying pyseoanalyzer.egg-info/entry_points.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 copying pyseoanalyzer.egg-info/not-zip-safe -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 copying pyseoanalyzer.egg-info/requires.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 copying pyseoanalyzer.egg-info/top_level.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
#8 0.705 creating dist
#8 0.705 creating 'dist/pyseoanalyzer-4.0.6-py3.10.egg' and adding 'build/bdist.linux-aarch64/egg' to it
#8 0.710 removing 'build/bdist.linux-aarch64/egg' (and everything under it)
#8 0.711 Processing pyseoanalyzer-4.0.6-py3.10.egg
#8 0.714 creating /usr/local/lib/python3.10/site-packages/pyseoanalyzer-4.0.6-py3.10.egg
#8 0.714 Extracting pyseoanalyzer-4.0.6-py3.10.egg to /usr/local/lib/python3.10/site-packages
#8 0.724 Adding pyseoanalyzer 4.0.6 to easy-install.pth file
#8 0.725 Installing seoanalyze script to /usr/local/bin
#8 0.725 
#8 0.725 Installed /usr/local/lib/python3.10/site-packages/pyseoanalyzer-4.0.6-py3.10.egg
#8 0.726 Processing dependencies for pyseoanalyzer==4.0.6
#8 0.727 Searching for certifi
#8 0.727 Reading https://pypi.org/simple/certifi/
#8 0.876 Downloading https://files.pythonhosted.org/packages/37/45/946c02767aabb873146011e665728b680884cd8fe70dde973c640e45b775/certifi-2021.10.8-py2.py3-none-any.whl#sha256=d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569
#8 1.057 Best match: certifi 2021.10.8
#8 1.057 Processing certifi-2021.10.8-py2.py3-none-any.whl
#8 1.058 Installing certifi-2021.10.8-py2.py3-none-any.whl to /usr/local/lib/python3.10/site-packages
#8 1.063 Adding certifi 2021.10.8 to easy-install.pth file
#8 1.065 
#8 1.065 Installed /usr/local/lib/python3.10/site-packages/certifi-2021.10.8-py3.10.egg
#8 1.065 Searching for urllib3
#8 1.065 Reading https://pypi.org/simple/urllib3/
#8 1.232 Downloading https://files.pythonhosted.org/packages/ec/03/062e6444ce4baf1eac17a6a0ebfe36bb1ad05e1df0e20b110de59c278498/urllib3-1.26.9-py2.py3-none-any.whl#sha256=44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14
#8 1.382 Best match: urllib3 1.26.9
#8 1.382 Processing urllib3-1.26.9-py2.py3-none-any.whl
#8 1.383 Installing urllib3-1.26.9-py2.py3-none-any.whl to /usr/local/lib/python3.10/site-packages
#8 1.401 Adding urllib3 1.26.9 to easy-install.pth file
#8 1.402 
#8 1.402 Installed /usr/local/lib/python3.10/site-packages/urllib3-1.26.9-py3.10.egg
#8 1.404 Searching for jinja2
#8 1.404 Reading https://pypi.org/simple/jinja2/
#8 1.530 Downloading https://files.pythonhosted.org/packages/20/9a/e5d9ec41927401e41aea8af6d16e78b5e612bca4699d417f646a9610a076/Jinja2-3.0.3-py3-none-any.whl#sha256=077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8
#8 1.677 Best match: Jinja2 3.0.3
#8 1.677 Processing Jinja2-3.0.3-py3-none-any.whl
#8 1.677 Installing Jinja2-3.0.3-py3-none-any.whl to /usr/local/lib/python3.10/site-packages
#8 1.685 Adding Jinja2 3.0.3 to easy-install.pth file
#8 1.686 
#8 1.686 Installed /usr/local/lib/python3.10/site-packages/Jinja2-3.0.3-py3.10.egg
#8 1.687 Searching for requests
#8 1.687 Reading https://pypi.org/simple/requests/
#8 1.900 Downloading https://files.pythonhosted.org/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl#sha256=f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d
#8 2.042 Best match: requests 2.27.1
#8 2.042 Processing requests-2.27.1-py2.py3-none-any.whl
#8 2.043 Installing requests-2.27.1-py2.py3-none-any.whl to /usr/local/lib/python3.10/site-packages
#8 2.057 Adding requests 2.27.1 to easy-install.pth file
#8 2.058 
#8 2.058 Installed /usr/local/lib/python3.10/site-packages/requests-2.27.1-py3.10.egg
#8 2.060 Searching for lxml
#8 2.060 Reading https://pypi.org/simple/lxml/
#8 2.594 Downloading https://files.pythonhosted.org/packages/3b/94/e2b1b3bad91d15526c7e38918795883cee18b93f6785ea8ecf13f8ffa01e/lxml-4.8.0.tar.gz#sha256=f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23
#8 3.175 Best match: lxml 4.8.0
#8 3.175 Processing lxml-4.8.0.tar.gz
#8 3.353 Writing /tmp/easy_install-qymx0_na/lxml-4.8.0/setup.cfg
#8 3.353 Running lxml-4.8.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-qymx0_na/lxml-4.8.0/egg-dist-tmp-w8ibzyt9
#8 3.392 error: Setup script exited with 1
#8 3.393 Building lxml version 4.8.0.
#8 3.393 Building without Cython.
#8 3.393 Error: Please make sure the libxml2 and libxslt development packages are installed.
#8 ERROR: executor failed running [/bin/sh -c python3 setup.py install]: exit code: 1
------
 > [4/4] RUN python3 setup.py install:
------
executor failed running [/bin/sh -c python3 setup.py install]: exit code: 1

Expected behavior

Dockerfile should build.

Desktop (please complete the following information):

Bogdan-Vieriu commented 2 years ago

I had the same problem, to solve it I added in the Dockerfile RUN apk add --update --no-cache g++ gcc libxslt-dev libxml2 libxml2-dev before RUN python3 setup.py install