pdf.py: make sure that chromedriver is baked into image (do not download for each invocation)
jgehrcke opened this issue · 0 comments
jgehrcke commented
Just got this locally which is a surprise:
# 231001-13:48:41.960 INFO: html_apath: /tmp/bats-run-yTRfV6/test/7/outdir/report_for_pdf.html
# 231001-13:48:41.960 INFO: set up chromedriver with capabilities {'browserName': 'chrome', 'pageLoadStrategy': 'normal', 'goog:chromeOptions': {'extensions': [], 'args': ['--headless', '--disable-gpu', '--no-sandbox', '--disable-dev-shm-usage']}}
# 231001-13:48:41.960 INFO: ====== WebDriver manager ======
# mkdir: cannot create directory ‘//.local’: Permission denied
# touch: cannot touch '//.local/share/applications/mimeapps.list': No such file or directory
# mkdir: cannot create directory ‘//.local’: Permission denied
# touch: cannot touch '//.local/share/applications/mimeapps.list': No such file or directory
# 231001-13:48:42.110 INFO: Get LATEST chromedriver version for google-chrome
# 231001-13:48:42.221 INFO: Get LATEST chromedriver version for google-chrome
# 231001-13:48:42.334 INFO: There is no [linux64] chromedriver "117.0.5938.92" for browser google-chrome "117.0.5938" in cache
# 231001-13:48:42.334 INFO: Get LATEST chromedriver version for google-chrome
# 231001-13:48:42.569 INFO: WebDriver version 117.0.5938.92 selected
# 231001-13:48:42.570 INFO: Modern chrome version https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/117.0.5938.92/linux64/chromedriver-linux64.zip
# 231001-13:48:42.570 INFO: About to download new driver from https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/117.0.5938.92/linux64/chromedriver-linux64.zip
# Traceback (most recent call last):
# File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 467, in _make_request
# self._validate_conn(conn)
# File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1092, in _validate_conn
# conn.connect()
# File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 642, in connect
# sock_and_verified = _ssl_wrap_socket_and_match_hostname(
# File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 783, in _ssl_wrap_socket_and_match_hostname
# ssl_sock = ssl_wrap_socket(
# File "/usr/local/lib/python3.10/site-packages/urllib3/util/ssl_.py", line 469, in ssl_wrap_socket
# ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
# File "/usr/local/lib/python3.10/site-packages/urllib3/util/ssl_.py", line 513, in _ssl_wrap_socket_impl
# return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
# File "/usr/local/lib/python3.10/ssl.py", line 513, in wrap_socket
# return self.sslsocket_class._create(
# File "/usr/local/lib/python3.10/ssl.py", line 1071, in _create
# self.do_handshake()
# File "/usr/local/lib/python3.10/ssl.py", line 1342, in do_handshake
# self._sslobj.do_handshake()
# ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1007)
The point of building the base image (it's already big) is to have batteries included.