pangeo-data / pangeo-docker-images

Docker Images For Pangeo Jupyter Environment
https://pangeo-docker-images.readthedocs.io
MIT License
117 stars 90 forks source link

Conda-lock install fails if building ARM image on non-ARM machine (default action runner) #560

Closed scottyhq closed 4 days ago

scottyhq commented 5 days ago

Describe the bug I didn't notice this initially since the docker build step 'succeeds' without raising and error even though conda-lock install has this traceback

#18 [linux/arm64 6/1] RUN echo "Checking for 'conda-lock.yml' 'conda-linux-64.lock' or 'environment.yml'..."         ; [ -d binder ] && cd binder         ; [ -d .binder ] && cd .binder         ; if test -f "conda-lock.yml" ; then echo "Using conda-lock.yml" &         conda-lock install --name notebook         ; elif test -f "environment.yml" ; then echo "Using environment.yml" &         mamba env create --name notebook -f environment.yml          ; else echo "No conda-lock.yml or environment.yml! *creating default env*" ;         mamba create --name notebook pangeo-notebook         ; fi         && mamba clean -yaf         && find /srv/conda -follow -type f -name '*.a' -delete         && find /srv/conda -follow -type f -name '*.js.map' -delete         ; if ls /srv/conda/envs/notebook/lib/python*/site-packages/bokeh/server/static > /dev/null 2>&1; then         find /srv/conda/envs/notebook/lib/python*/site-packages/bokeh/server/static -follow -type f -name '*.js' ! -name '*.min.js' -delete         ; fi
#18 29.02 Traceback (most recent call last):
#18 29.02   File "/srv/conda/bin/conda-lock", line 10, in <module>
#18 29.02     sys.exit(main())
#18 29.02   File "/srv/conda/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
#18 29.02     return self.main(*args, **kwargs)
#18 29.02   File "/srv/conda/lib/python3.10/site-packages/click/core.py", line 1078, in main
#18 29.03     rv = self.invoke(ctx)
#18 29.03   File "/srv/conda/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
#18 29.03     return _process_result(sub_ctx.command.invoke(sub_ctx))
#18 29.03   File "/srv/conda/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
#18 29.03     return ctx.invoke(self.callback, **ctx.params)
#18 29.03   File "/srv/conda/lib/python3.10/site-packages/click/core.py", line 783, in invoke
#18 29.03     return __callback(*args, **kwargs)
#18 29.03   File "/srv/conda/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
#18 29.03     return f(get_current_context(), *args, **kwargs)
#18 29.03   File "/srv/conda/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 1498, in click_install
#18 29.04     install(
#18 29.04   File "/srv/conda/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 1545, in install
#18 29.04     with _render_lockfile_for_install(
#18 29.04   File "/srv/conda/lib/python3.10/contextlib.py", line 135, in __enter__
#18 29.04     return next(self.gen)
#18 29.04   File "/srv/conda/lib/python3.10/site-packages/conda_lock/conda_lock.py", line 999, in _render_lockfile_for_install
#18 29.04     raise PlatformValidationError(
#18 29.04 conda_lock.errors.PlatformValidationError: The lockfile conda-lock.yml does not contain a solution for the current platform linux-aarch64. The lockfile only contains solutions for the following platforms: linux-64. In order to add support for linux-aarch64, you must regenerate the lockfile. Either add the following section to your environment.yml:
#18 29.04 
#18 29.04 platforms:
#18 29.04 - linux-aarch64
#18 29.04 - linux-64
#18 29.04 
#18 29.04 or add the following arguments to the conda-lock command:
#18 29.04 
#18 29.04 --platform=linux-aarch64 --platform=linux-64

https://github.com/pangeo-data/pangeo-docker-images/actions/runs/9706958727/job/26791502659