Skip to content

Container build failure on master: gcc missing #50

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
woodruffw opened this issue Dec 9, 2020 · 10 comments
Closed

Container build failure on master: gcc missing #50

woodruffw opened this issue Dec 9, 2020 · 10 comments

Comments

@woodruffw
Copy link
Member

This is completely unrelated to the work I'm doing on PyPI, but I just noticed it on another project: cryptography is failing to build because gcc is missing. My best guess is that the docker container that this action is using changed underneath it.

Raw error:

Building wheels for collected packages: cryptography
2020-12-09T00:33:50.3441972Z   Building wheel for cryptography (PEP 517): started
2020-12-09T00:33:51.4732894Z   Building wheel for cryptography (PEP 517): finished with status 'error'
2020-12-09T00:33:51.4745471Z �[91m  ERROR: Command errored out with exit status 1:
2020-12-09T00:33:51.4746375Z    command: /usr/local/bin/python /usr/local/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpnbs2lzqp
2020-12-09T00:33:51.4747511Z        cwd: /tmp/pip-install-yxqcx4jn/cryptography_4bbbeefb6f3647b9b31617dd26d2712d
2020-12-09T00:33:51.4748271Z   Complete output (146 lines):
2020-12-09T00:33:51.4748683Z   running bdist_wheel
2020-12-09T00:33:51.4749037Z   running build
2020-12-09T00:33:51.4749392Z   running build_py
2020-12-09T00:33:51.4749741Z   creating build
2020-12-09T00:33:51.4750188Z   creating build/lib.linux-x86_64-3.8
2020-12-09T00:33:51.4750734Z   creating build/lib.linux-x86_64-3.8/cryptography
2020-12-09T00:33:51.4751450Z   copying src/cryptography/utils.py -> build/lib.linux-x86_64-3.8/cryptography
2020-12-09T00:33:51.4752252Z   copying src/cryptography/__init__.py -> build/lib.linux-x86_64-3.8/cryptography
2020-12-09T00:33:51.4755057Z   copying src/cryptography/__about__.py -> build/lib.linux-x86_64-3.8/cryptography
2020-12-09T00:33:51.4757211Z   copying src/cryptography/fernet.py -> build/lib.linux-x86_64-3.8/cryptography
2020-12-09T00:33:51.4758214Z   copying src/cryptography/exceptions.py -> build/lib.linux-x86_64-3.8/cryptography
2020-12-09T00:33:51.4758990Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat
2020-12-09T00:33:51.4759765Z   copying src/cryptography/hazmat/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat
2020-12-09T00:33:51.4760649Z   copying src/cryptography/hazmat/_der.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat
2020-12-09T00:33:51.4761547Z   copying src/cryptography/hazmat/_oid.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat
2020-12-09T00:33:51.4762304Z   creating build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4763088Z   copying src/cryptography/x509/extensions.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4763962Z   copying src/cryptography/x509/name.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4764813Z   copying src/cryptography/x509/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4765746Z   copying src/cryptography/x509/certificate_transparency.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4766696Z   copying src/cryptography/x509/oid.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4767566Z   copying src/cryptography/x509/general_name.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4768421Z   copying src/cryptography/x509/base.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4769263Z   copying src/cryptography/x509/ocsp.py -> build/lib.linux-x86_64-3.8/cryptography/x509
2020-12-09T00:33:51.4770040Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/bindings
2020-12-09T00:33:51.4770912Z   copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/bindings
2020-12-09T00:33:51.4771913Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/backends
2020-12-09T00:33:51.4772785Z   copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends
2020-12-09T00:33:51.4773851Z   copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends
2020-12-09T00:33:51.4774790Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4775735Z   copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4776810Z   copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4777910Z   copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4779012Z   copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4780164Z   copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4781260Z   copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4782389Z   copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4783489Z   copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives
2020-12-09T00:33:51.4784426Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/bindings/openssl
2020-12-09T00:33:51.4785397Z   copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/bindings/openssl
2020-12-09T00:33:51.4786551Z   copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/bindings/openssl
2020-12-09T00:33:51.4787736Z   copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/bindings/openssl
2020-12-09T00:33:51.4788727Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4789684Z   copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4790798Z   copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4791958Z   copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4793106Z   copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4794239Z   copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4795492Z   copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4796648Z   copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4797776Z   copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4798929Z   copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4800083Z   copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4801228Z   copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4802397Z   copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4803614Z   copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4804758Z   copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4805890Z   copying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4807012Z   copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4808141Z   copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4809267Z   copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4810467Z   copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4811658Z   copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4812814Z   copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/backends/openssl
2020-12-09T00:33:51.4813793Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4814840Z   copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4816077Z   copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4817318Z   copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4818572Z   copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4819796Z   copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4821047Z   copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4822287Z   copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4823565Z   copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4824830Z   copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4826070Z   copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4827327Z   copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/asymmetric
2020-12-09T00:33:51.4828368Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/twofactor
2020-12-09T00:33:51.4829406Z   copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/twofactor
2020-12-09T00:33:51.4830627Z   copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/twofactor
2020-12-09T00:33:51.4831851Z   copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/twofactor
2020-12-09T00:33:51.4833120Z   copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/twofactor
2020-12-09T00:33:51.4834143Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/ciphers
2020-12-09T00:33:51.4835285Z   copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/ciphers
2020-12-09T00:33:51.4836471Z   copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/ciphers
2020-12-09T00:33:51.4838107Z   copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/ciphers
2020-12-09T00:33:51.4839307Z   copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/ciphers
2020-12-09T00:33:51.4840677Z   copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/ciphers
2020-12-09T00:33:51.4841832Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4842810Z   copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4843935Z   copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4845154Z   copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4846301Z   copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4847424Z   copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4848559Z   copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4849683Z   copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/kdf
2020-12-09T00:33:51.4850687Z   creating build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/serialization
2020-12-09T00:33:51.4851796Z   copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/serialization
2020-12-09T00:33:51.4853115Z   copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/serialization
2020-12-09T00:33:51.4854448Z   copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/serialization
2020-12-09T00:33:51.4855764Z   copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/serialization
2020-12-09T00:33:51.4857109Z   copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.linux-x86_64-3.8/cryptography/hazmat/primitives/serialization
2020-12-09T00:33:51.4857951Z   running egg_info
2020-12-09T00:33:51.4858495Z   writing src/cryptography.egg-info/PKG-INFO
2020-12-09T00:33:51.4859305Z   writing dependency_links to src/cryptography.egg-info/dependency_links.txt
2020-12-09T00:33:51.4860214Z   writing requirements to src/cryptography.egg-info/requires.txt
2020-12-09T00:33:51.4861063Z   writing top-level names to src/cryptography.egg-info/top_level.txt
2020-12-09T00:33:51.4861907Z   reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
2020-12-09T00:33:51.4862593Z   reading manifest template 'MANIFEST.in'
2020-12-09T00:33:51.4863281Z   no previously-included directories found matching 'docs/_build'
2020-12-09T00:33:51.4864053Z   warning: no previously-included files found matching 'vectors'
2020-12-09T00:33:51.4864887Z   warning: no previously-included files matching '*' found under directory 'vectors'
2020-12-09T00:33:51.4865856Z   warning: no previously-included files matching '*' found under directory '.github'
2020-12-09T00:33:51.4866701Z   warning: no previously-included files found matching 'release.py'
2020-12-09T00:33:51.4867524Z   warning: no previously-included files found matching '.coveragerc'
2020-12-09T00:33:51.4868326Z   warning: no previously-included files found matching 'codecov.yml'
2020-12-09T00:33:51.4869178Z   warning: no previously-included files found matching '.readthedocs.yml'
2020-12-09T00:33:51.4870098Z   warning: no previously-included files found matching 'dev-requirements.txt'
2020-12-09T00:33:51.4871068Z   warning: no previously-included files found matching 'rtd-requirements.txt'
2020-12-09T00:33:51.4871922Z   warning: no previously-included files found matching 'tox.ini'
2020-12-09T00:33:51.4872748Z   warning: no previously-included files matching '*' found under directory '.zuul.d'
2020-12-09T00:33:51.4873674Z   warning: no previously-included files matching '*' found under directory '.zuul.playbooks'
2020-12-09T00:33:51.4874952Z   writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
2020-12-09T00:33:51.4875717Z   warning: build_py: byte-compiling is disabled, skipping.
2020-12-09T00:33:51.4876200Z   
2020-12-09T00:33:51.4876504Z   running build_ext
2020-12-09T00:33:51.4877055Z   generating cffi module 'build/temp.linux-x86_64-3.8/_padding.c'
2020-12-09T00:33:51.4877662Z   creating build/temp.linux-x86_64-3.8
2020-12-09T00:33:51.4878282Z   generating cffi module 'build/temp.linux-x86_64-3.8/_openssl.c'
2020-12-09T00:33:51.4878857Z   building '_openssl' extension
2020-12-09T00:33:51.4879374Z   creating build/temp.linux-x86_64-3.8/build
2020-12-09T00:33:51.4879998Z   creating build/temp.linux-x86_64-3.8/build/temp.linux-x86_64-3.8
2020-12-09T00:33:51.4881466Z   gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.8 -c build/temp.linux-x86_64-3.8/_openssl.c -o build/temp.linux-x86_64-3.8/build/temp.linux-x86_64-3.8/_openssl.o -Wconversion -Wno-error=sign-conversion
2020-12-09T00:33:51.4882834Z   unable to execute 'gcc': No such file or directory
2020-12-09T00:33:51.4883261Z   
2020-12-09T00:33:51.4883626Z       =============================DEBUG ASSISTANCE=============================
2020-12-09T00:33:51.4884245Z       If you are seeing a compilation error please try the following steps to
2020-12-09T00:33:51.4884910Z       successfully install cryptography:
2020-12-09T00:33:51.4885530Z       1) Upgrade to the latest pip and try again. This will fix errors for most
2020-12-09T00:33:51.4886338Z          users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
2020-12-09T00:33:51.4887266Z       2) Read https://cryptography.io/en/latest/installation.html for specific
2020-12-09T00:33:51.4888012Z          instructions for your platform.
2020-12-09T00:33:51.4888598Z       3) Check our frequently asked questions for more information:
2020-12-09T00:33:51.4889311Z          https://cryptography.io/en/latest/faq.html
2020-12-09T00:33:51.4889907Z       =============================DEBUG ASSISTANCE=============================
2020-12-09T00:33:51.4890279Z   
2020-12-09T00:33:51.4890682Z   error: command 'gcc' failed with exit status 1
2020-12-09T00:33:51.4891170Z   ----------------------------------------
2020-12-09T00:33:51.4891688Z �[0m�[91m  ERROR: Failed building wheel for cryptography
2020-12-09T00:33:51.4892289Z �[0mFailed to build cryptography
2020-12-09T00:33:51.4893022Z �[91mERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
2020-12-09T00:33:51.9156945Z The command '/bin/sh -c pip install --upgrade --no-cache-dir twine' returned a non-zero code: 1
2020-12-09T00:33:51.9157576Z �[0m
2020-12-09T00:33:51.9175397Z ##[warning]Docker build failed with exit code 1, back off 6.602 seconds before retry.

Example failing workflow: https://github.com/trailofbits/blight/runs/1520996200

@woodruffw
Copy link
Member Author

The parent container has gcc explicitly installed, so I'm a little confused: https://github.com/docker-library/python/blob/master/3.8/buster/slim/Dockerfile

@woodruffw
Copy link
Member Author

Looks like it was ephemeral. Sorry for the noise!

@di
Copy link
Member

di commented Dec 9, 2020

Your log indicates that it's trying to install & build the source distribution for cryptography==3.3:

 Collecting cryptography>=2.0
    Downloading cryptography-3.3.tar.gz (539 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'

Given that this version was just released ~15 minutes ago, it's more likely that your build ran at a time when the source distribution was available, but the wheels were not.

@woodruffw
Copy link
Member Author

Ah, that makes sense! Bad timing 😅

@di
Copy link
Member

di commented Dec 9, 2020

Also I think the -slim images remove a lot of stuff in the last layers, gcc probably is included.

@webknjaz
Copy link
Member

webknjaz commented Dec 9, 2020

Woah! Great discovery! I think we could improve this by passing --prefer-binary to pip or/and maybe correcting the $PATH env var.

@di
Copy link
Member

di commented Dec 9, 2020

I'm not sure how --prefer-binary would have helped here? Pip would still have fallen back on installing the source distribution. Also not sure how changing $PATH would have fixed this.

I would maybe argue that we should have gcc in the container (or maybe not use -slim here) instead, but I think this will happen infrequently enough that it's not worth doing.

@woodruffw
Copy link
Member Author

Yeah, I don't think --prefer-binary would have helped here. I think the "fix" (maybe not currently possible) would be --only-binary, or for pip to intelligently select an older (but still appropriately constrained) version that has a wheel available.

Alternatively: this repo could build a stable container and pull it down with each tagged release, rather than doing the twine build + install with each workflow.

@webknjaz
Copy link
Member

webknjaz commented Dec 9, 2020

IIRC --prefer-binary selects an older version of a dependency if the newer version only has an sdist which makes sense for a race condition when sdist a wheels are published from different parallel/async jobs.

@webknjaz

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants