<#22443 Rust Dockerfiles parser fails on base imag...
# github-notifications
c
#22443 Rust Dockerfiles parser fails on base image with hash and build arg Issue created by bdabelow Thanks for 2.27.0 release. Unfortunately I was late in testing the RC. Describe the bug Using the rust Dockerfile parser, this Dockerfile fails to build:
Copy code
ARG DOCKER_IO_MIRROR=<http://docker.io|docker.io>
FROM $DOCKER_IO_MIRROR/dperson/samba@sha256:e1d2a7366690749a7be06f72bdbf6a5a7d15726fc84e4e4f41e967214516edfd
The same build works fine using the python parser. Pants version 2.27.0 OS Linux Additional info I have added some tests to expose the issue here: bdabelow@8311df2 Minimal repro is here: https://github.com/bdabelow/pants-repro/tree/main/rust-dockerfile-parser Log:
Copy code
> pants package ::
    12:16:12.97 [INFO] Initializing scheduler...
    12:16:14.87 [INFO] Scheduler initialized.
    12:16:14.97 [INFO] Completed: Scheduling: Test binary /usr/bin/docker.
    12:16:14.99 [INFO] Completed: Scheduling: Test binary /bin/docker.
    12:16:15.01 [ERROR] 1 Exception encountered:
    
    Engine traceback:
      in root
        ..
      in pants.core.goals.package.package_asset
        `package` goal
    
    Traceback (most recent call last):
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/core/goals/package.py", line 195, in package_asset
        packages = await MultiGet(
                   ^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/engine/internals/selectors.py", line 356, in MultiGet
        return await _MultiGet(tuple(__arg0))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/engine/internals/selectors.py", line 163, in __await__
        result = yield self.gets
                 ^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/core/goals/package.py", line 146, in environment_aware_package
        package = await Get(
                  ^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/engine/internals/selectors.py", line 113, in __await__
        result = yield self
                 ^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/backend/docker/goals/package_image.py", line 394, in build_docker_image
        context, wrapped_target = await MultiGet(
                                  ^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/engine/internals/selectors.py", line 386, in MultiGet
        return await _MultiGet((__arg0, __arg1))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/engine/internals/selectors.py", line 163, in __await__
        result = yield self.gets
                 ^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/backend/docker/util_rules/docker_build_context.py", line 384, in create_docker_build_context
        return DockerBuildContext.create(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/backend/docker/util_rules/docker_build_context.py", line 137, in create
        stage_names, tags_values = cls._get_stages_and_tags(
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/axccu/.cache/nce/6d61748cea187199dc28418157b2121ccbbb44e4af2ee6fddf8c04bbed73f76d/bindings/venvs/2.27.0/lib/python3.11/site-packages/pants/backend/docker/util_rules/docker_build_context.py", line 186, in _get_stages_and_tags
        raise DockerBuildContextError(
    pants.backend.docker.util_rules.docker_build_context.DockerBuildContextError: Failed to parse Dockerfile baseimage tag for stage stage0 in // target, from image ref: <http://docker.io|docker.io>.
pantsbuild/pants