<#18162 Testing in Docker environment fails with p...
# github-notifications
c
#18162 Testing in Docker environment fails with pex FileNotFoundError Issue created by psontag Describe the bug When trying to run some tests in my
docker_environment
I get the below error:
Copy code
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py", line 187, in _run_module_as_main
    mod_name, mod_spec, code = _get_main_module_details(_Error)
  File "/usr/local/lib/python3.8/runpy.py", line 221, in _get_main_module_details
    return _get_module_details(main_name)
  File "/usr/local/lib/python3.8/runpy.py", line 155, in _get_module_details
    code = loader.get_code(mod_name)
  File "<frozen zipimport>", line 159, in get_code
  File "<frozen zipimport>", line 709, in _get_module_code
  File "<frozen zipimport>", line 536, in _get_data
FileNotFoundError: [Errno 2] No such file or directory: './pex'
I have included the full traceback below. If you need any more information please let me know. Pants version 2.16.0.dev5 OS I am developing on a Mac but the tests are supposed to be executed in the
python:3.8-slim
linux Docker container. Additional info In my root level
BUILD
file I have configured the
docker_environment
Copy code
docker_environment(
    name="dev_docker",
    platform="linux_x86_64",
    image="python:3.8-slim",
    python_bootstrap_search_path=["<PATH>"],
)
The test
BUILD
file has set the environment
Copy code
python_tests(
    name="tests", environment="dev_docker"
)
pants.toml
Copy code
[GLOBAL]
pants_version = "2.16.0.dev5"
dynamic_ui = true
backend_packages = [
  "pants.backend.build_files.fix.deprecations",
  "pants.backend.build_files.fmt.black",
  "pants.backend.python",
  "pants.backend.python.lint.autoflake",
  "pants.backend.python.lint.black",
  "pants.backend.python.lint.flake8",
  "pants.backend.python.lint.isort",
  "pants.backend.python.lint.pyupgrade",
  "pants.backend.python.typecheck.mypy",
  "pants.backend.docker",
]

[python]
enable_resolves = true
interpreter_constraints = [">=3.8.*"]

[python.resolves_to_only_binary]
__default__= [":all:"]

[python-bootstrap]
search_path = [
  "<PYENV>",
  "<PATH>"
]

[test]
batch_size = 16

[pytest]
args = ["--no-header"]
execution_slot_var = "PANTS_RUNNER_ID"
config = "pyproject.toml"

[docker]
tailor = false

[environments-preview.names]
dev_docker = "//:dev_docker"
full error traceback ``` pants test src/project:: --print-stacktrace --keep-sandboxes=on_failure 132353.31 [INFO] Completed: Pulling Docker image
python:3.8-slim
because the image is missing locally. 132354.77 [INFO] Preserving local process execution dir /private/var/folders/8b/0w6lmjjx7fsdm_6hhcrjfdfw0000gq/T/pants-sandbox-oEZLFk for Find interpreter for constraints: CPython>=3.8.* 132354.78 [ERROR] 1 Exception encountered: Engine traceback: in select .. in pants.core.goals.test.run_tests
test
goal Traceback (most recent call last): File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 626, in native_engine_generator_send res = rule.send(arg) if err is None else rule.throw(throw or err) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/core/goals/test.py", line 836, in run_tests results = await MultiGet( File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 360, in MultiGet return await _MultiGet(tuple(__arg0)) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 167, in await result = yield self.gets File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 626, in native_engine_generator_send res = rule.send(arg) if err is None else rule.throw(throw or err) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/backend/python/goals/pytest_runner.py", line 475, in run_python_tests setup = await Get( File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 120, in await result = yield self File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 626, in native_engine_generator_send res = rule.send(arg) if err is None else rule.throw(throw or err) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/backend/python/goals/pytest_runner.py", line 475, in run_python_tests setup = await Get( File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 120, in await result = yield self File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 626, in native_engine_generator_send res = rule.send(arg) if err is None else rule.throw(throw or err) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/backend/python/goals/pytest_runner.py", line 262, in setup_pytest_for_target ) = await MultiGet( File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 451, in MultiGet return await _MultiGet((__arg0, __arg1, __arg2, __arg3, __arg4, __arg5)) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 167, in await result = yield self.gets File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 626, in native_engine_generator_send res = rule.send(arg) if err is None else rule.throw(throw or err) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/backend/python/goals/pytest_runner.py", line 475, in run_python_tests setup = await Get( File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 120, in await result = yield self File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/engine/internals/selectors.py", line 626, in native_engine_generator_send res = rule.send(arg) if err is None else rule.throw(throw or err) File "/Users/me/Library/Caches/nce/a7a7e5c8d0659936773c836830336c0e3743f47588d74ecdce11e40b499a7003/bindings/venvs/2.16.0.dev5/lib/python3.9/site-packages/pants/backend/python/goals/pytest_runner.py", line 262, in setup_pytest_for_target ) = await MultiGet( F… pantsbuild/pants