stale-waitress-56895
02/05/2025, 12:58 PM# infra/base-images/images/chemistry/BUILD
files(
name="deps",
sources=[
"requirements.txt",
],
)
docker_image(
name="chemistry",
dependencies=[
":deps",
"//infra/base-images/images/base:base",
],
extra_build_args = [
"baseimage=//infra/base-images/images/base:base",
],
)
and I use a default context
use_buildx = true
default_context_root = "./"
When I run a "pants publish", I get the following error message
09:36:38.63 [WARN] Docker build failed for `docker_image` infra/base-images/images/chemistry:chemistry. There are unreachable files in these directories, excluded from the build context due to `context_root` being 'infra/base-images/images/chemistry':
* infra.base-images.images.base
Suggested `context_root` setting is '' in order to include all files in the build context, otherwise relocate the files to be part of the current `context_root` 'infra/base-images/images/chemistry'.
09:36:38.63 [ERROR] 1 Exception encountered:
Engine traceback:
in `publish` goal
ProcessExecutionFailure: Process 'Building docker image europe-docker.pkg.dev/xxxxx/platform/chemistry/chemistry:ademaria-fix-fix-ci-pants-tags +2 additional tags.' failed with exit code 1.
stdout:
stderr:
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile:
#1 transferring dockerfile: 678B done
#1 WARN: InvalidDefaultArgInFrom: Default value for ARG ${baseimage} results in empty or invalid base image name (line 3)
#1 DONE 0.0s
#2 [internal] load metadata for europe-docker.pkg.dev/xxxx/platform/base/base:ademaria-fix-fix-ci-pants-tags
#2 ERROR: europe-docker.pkg.dev/xxxx/platform/base/base:ademaria-fix-fix-ci-pants-tags: not found
------
> [internal] load metadata for europe-docker.pkg.dev/xxxx/platform/base/base:ademaria-fix-fix-ci-pants-tags:
------
Dockerfile:3
--------------------
1 | ARG basetag
2 | ARG baseimage=eu.gcr.io/xxxx/cuspai/base-images/base:${basetag}
3 | >>> FROM ${baseimage}
4 |
5 | # Add fortran
--------------------
ERROR: failed to solve: europe-docker.pkg.dev/xxxx/platform/base/base:ademaria-fix-fix-ci-pants-tags: failed to resolve source metadata for europe-docker.pkg.dev/xxxx/platform/base/base:ademaria-fix-fix-ci-pants-tags: europe-docker.pkg.dev/xxxxx/platform/base/base:ademaria-fix-fix-ci-pants-tags: not foundstale-waitress-56895
02/05/2025, 12:58 PMstale-waitress-56895
02/05/2025, 1:00 PMbroad-processor-92400
02/06/2025, 9:04 AMstale-waitress-56895
02/06/2025, 9:05 AMARG basetag
ARG baseimage=<http://eu.gcr.io/xxxxx/base-images/base:${basetag}|eu.gcr.io/xxxxx/base-images/base:${basetag}>
FROM ${baseimage}
yada yadastale-waitress-56895
02/06/2025, 9:06 AMstale-waitress-56895
02/06/2025, 9:07 AMbroad-processor-92400
02/06/2025, 9:08 AMstale-waitress-56895
02/06/2025, 9:08 AMstale-waitress-56895
02/07/2025, 5:07 PMinfra/base-images/images/base:base
pants dependencies infra/base-images/images/ml:ml
infra/base-images/images/base:base
infra/base-images/images/ml/mamba_environment.yaml:deps
infra/base-images/images/ml/pip_requirements.txt:deps
infra/base-images/images/ml/pip_requirements.txt:reqs
the BUILD is pretty straightforward
files(
name="deps",
sources=[
"pip_requirements.txt",
"mamba_environment.yaml"
],
)
docker_image(
name="ml",
dependencies=[
":deps",
"//infra/base-images/images/base:base",
],
)
The dockerfile is essentially
FROM infra/base-images/images/base:base
I when I run package I get (on mac, using buildx)
#22 writing cache manifest sha256:32a1aafbface55ae5fff05a68b43721604124b196be1c67cb869c9981011c984 0.1s done
#22 DONE 5.2s
------
> importing cache manifest from europe-docker.pkg.dev/xxxxxxxx/platform/base/base:main}:
------
17:02:04.83 [INFO] Completed: Building docker image europe-docker.pkg.dev/xxxxxxxx/platform/ml/ml:ademaria-fix-fix-pants-build-tags +2 additional tags.
17:02:04.83 [WARN] Docker build failed for `docker_image` infra/base-images/images/ml:ml. There are files in the Docker build context that were not referenced by any `COPY` instruction (this is not an error):
* infra.base-images.images.base/base.docker-info.json
17:02:04.83 [ERROR] 1 Exception encountered:
Engine traceback:
in `package` goal
ProcessExecutionFailure: Process 'Building docker image europe-docker.pkg.dev/xxxxxxxx/platform/ml/ml:ademaria-fix-fix-pants-build-tags +2 additional tags.' failed with exit code 1.
stdout:
stderr:
#0 building with "desktop-linux" instance using docker driver
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 514B done
#1 DONE 0.0s
#2 [internal] load metadata for <http://docker.io/infra/base-images/images/base:base|docker.io/infra/base-images/images/base:base>
#2 ERROR: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
------
> [internal] load metadata for <http://docker.io/infra/base-images/images/base:base|docker.io/infra/base-images/images/base:base>:
------
Dockerfile:1
--------------------
1 | >>> FROM infra/base-images/images/base:base
2 |
3 | # Add additional micromamba dependencies
--------------------
ERROR: failed to solve: infra/base-images/images/base:base: failed to resolve source metadata for <http://docker.io/infra/base-images/images/base:base|docker.io/infra/base-images/images/base:base>: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failedrefined-addition-53644
02/07/2025, 7:07 PMinfra/base-images/images/base:basestale-waitress-56895
02/07/2025, 9:37 PMrefined-addition-53644
02/07/2025, 9:48 PMstale-waitress-56895
02/07/2025, 9:50 PMstale-waitress-56895
02/12/2025, 4:27 PM#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 677B done
#1 WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 2)
#1 DONE 0.0s
#2 [internal] load metadata for <http://docker.io/infra/base-images/images/base:base|docker.io/infra/base-images/images/base:base>
#2 ERROR: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
------
> [internal] load metadata for <http://docker.io/infra/base-images/images/base:base|docker.io/infra/base-images/images/base:base>:
------
1 warning found (use docker --debug to expand):
- InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 2)
Dockerfile:2
--------------------
1 | ARG BASE_IMAGE
2 | >>> FROM ${BASE_IMAGE}
3 |
4 | # Add fortranstale-waitress-56895
02/12/2025, 4:27 PMdocker_image(
name="chemistry",
dependencies=[
":deps",
"infra/base-images/images/base:base",
],
extra_build_args=[
"BASE_IMAGE=infra/base-images/images/base:base",
],
)stale-waitress-56895
02/12/2025, 4:28 PMpants dependencies //infra/base-images/images/chemistry:chemistry
infra/base-images/images/base:base
infra/base-images/images/chemistry/mamba_environment.yaml:deps
infra/base-images/images/chemistry/pip_requirements.txt:deps
infra/base-images/images/chemistry/pip_requirements.txt:reqsstale-waitress-56895
02/12/2025, 4:28 PMinfra/base-images/images/base:base is building correctlystale-waitress-56895
02/12/2025, 6:42 PMARG BASE_IMAGE
this alone without a default value doesn't make it work, even if I always supply the value as build-argsstale-waitress-56895
02/12/2025, 6:42 PMbroad-processor-92400
02/12/2025, 10:51 PM--keep-sandboxes=always to strip away the pants layer) and find it's a pants issue, please file a bug!stale-waitress-56895
02/13/2025, 8:45 AM- uses: docker/setup-buildx-action@v3
with:
install: true
driver: docker
because https://github.com/docker/buildx/issues/301#issuecomment-755164475
The docker-container driver you need to use for multi-platform builds doesn't support accessing local images, so you need to pull from a registry, whether local or remote.
discussion: https://github.com/pantsbuild/pants/issues/20189#issuecomment-1878162989
solution: https://github.com/pantsbuild/example-docker/pull/12/filesstale-waitress-56895
02/13/2025, 8:46 AMbroad-processor-92400
02/13/2025, 10:38 PM