Docker构建petereport时遇连接超时与cairocffi安装失败问题
构建petereport Docker镜像遇到的两个问题
项目地址:https://github.com/1modm/petereport
问题1:添加PPA仓库时连接超时
执行Dockerfile第12步时,命令长时间无响应(约2小时),最终抛出连接超时错误,相关命令为:
add-apt-repository ppa:deadsnakes/ppa && apt-get update && apt-get install -y python3.8 python3-pip && rm -rf /var/lib/apt/lists/*
报错信息:
Traceback (most recent call last): File "/usr/bin/add-apt-repository", line 364, in <module> sys.exit(0 if addaptrepo.main() else 1) File "/usr/bin/add-apt-repository", line 347, in main shortcut = handler(source, **shortcut_params) File "/usr/lib/python3/dist-packages/softwareproperties/shortcuts.py", line 40, in shortcut_handler return handler(shortcut, **kwargs) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 82, in __init__ if self.lpppa.publish_debug_symbols: File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 120, in lpppa self._lpppa = self.lpteam.getPPAByName(name=self.ppaname) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, in lpteam self._lpteam = self.lp.people(self.teamname) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 98, in lp self._lp = login_func("%s.%s" % (self.__module__, self.__class__.__name__), File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 494, in login_anonymously return cls( File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 230, in __init__ super(Launchpad, self).__init__( File "/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py", line 472, in __init__ self._wadl = self._browser.get_wadl_application(self._root_uri) File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 447, in get_wadl_application response, content = self._request(url, media_type=wadl_type) File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 389, in _request response, content = self._request_and_retry( File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 359, in _request_and_retry response, content = self._connection.request( File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1725, in request (response, content) = self._request( File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 144, in _request response, content = super(LaunchpadOAuthAwareHttp, self)._request( File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 184, in _request return super(RestfulHttp, self)._request( File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1441, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1363, in _conn_request conn.connect() File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1155, in connect self.sock = self._context.wrap_socket(sock, server_hostname=self.host) File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket return self.sslsocket_class._create( File "/usr/lib/python3.10/ssl.py", line 1071, in _create self.do_handshake() File "/usr/lib/python3.10/ssl.py", line 1342, in do_handshake self._sslobj.do_handshake() TimeoutError: [Errno 110] Connection timed out ERROR: Service 'petereport' failed to build: The command '/bin/sh -c add-apt-repository ppa:deadsnakes/ppa && apt-get update && apt-get install -y python3.8 python3-pip && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 1
注:该命令在宿主机终端中可正常执行
问题2:pipenv安装依赖时cairocffi失败
添加-y参数解决上述超时问题后,执行pipenv install --system --deploy --ignore-pipfile步骤时,cairocffi安装失败,报错信息如下:
Step 34/34 : RUN pipenv install --system --deploy --ignore-pipfile ---> Running in 1c49886075d9 Pipfile.lock not found, creating… Locking [dev-packages] dependencies… Locking [packages] dependencies… self.repository.get_dependencies(ireq) File "/usr/lib/python3/dist-packages/pipenv/patched/piptools/repositories/pypi.py", line 174, in get_dependencies legacy_results = self.get_legacy_dependencies(ireq) File "/usr/lib/python3/dist-packages/pipenv/patched/piptools/repositories/pypi.py", line 222, in get_legacy_dependencies result = reqset._prepare_file(self.finder, ireq, ignore_requires_python=True) File "/usr/lib/python3/dist-packages/pipenv/patched/notpip/req/req_set.py", line 644, in _prepare_file abstract_dist.prep_for_dist() File "/usr/lib/python3/dist-packages/pipenv/patched/notpip/req/req_set.py", line 134, in prep_for_dist self.req_to_install.run_egg_info() File "/usr/lib/python3/dist-packages/pipenv/vendor/pip9/req/req_install.py", line 435, in run_egg_info call_subprocess( File "/usr/lib/python3/dist-packages/pipenv/vendor/pip9/utils/__init__.py", line 705, in call_subprocess raise InstallationError( pip9.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmp3g_r4makbuild/cairocffi/ The command '/bin/sh -c pipenv install --system --deploy --ignore-pipfile' returned a non-zero code: 1 ERROR: Service 'petereport' failed to build : Build failed
内容的提问来源于stack exchange,提问作者Quyền Nguyễn
相关产品推荐
相关产品推荐

