Open rbavery opened 5 years ago
Hi @rbavery, maybe this is related to this recent change to only conda-forge packages on master?: https://github.com/jupyter/repo2docker/pull/728. Seems there are quite a few issues out there for libiconv
not getting installed as a necessary dependency https://github.com/jupyter/jupyter/issues/431. Did this environment build for you previously? If you add libiconv
to your environment.yml is the build successful? Do you know what version of libiconv was installed in your previous build?
Is there a clue in the output for "maybe caused by only using conda packages"? To me it looks pretty standard :-/ What is weird is that the error occurs during the step where miniconda is installed so the contents of the repo hasn't been looked at yet.
With repo2docker master
(version output 0.9.0+186.gd72c601
) and repo2docker --ref 66ba8eb8892a1983d3ea1afc2a13092d87c53660 https://github.com/agroimpacts/pyatsa
I get a working container (working == it builds) locally. My docker image cache is empty.
True @betatim ! maybe I spoke too soon (I was assuming it was working for @rbavery previously). I'm suspicious of the "0+unknown"
version... I haven't seen that before. Could the repo2docker environment itself be behind this issue?
Hi @scottyhq and @betatim thanks for the speedy responses! The environment built for me previously but only if I call conda env create -f environment.yaml
directly and do not use repo2docker.
An older version (from a week ago or so) of repo2docker also built this repo for me when I posted my comment above. So I think this isn't a newly broken thing.
The error in repo2docker occurs while installing miniconda and the default environnent. This means the problem is probably not related to the contents of your environment.yaml
.
@rbavery Can you build other environments like https://github.com/binder-examples/conda? What if you delete all docker images related to repo2docker and then try to build things?
I think the tricky thing is that there's two ways to have libiconv:
Conda-forge has the former, Anaconda has the latter. I attempted to unify those by making conda-forge's recipe use the glibc one, but that didn't work because we really need to make that change across all recipes that use libiconv, not just libxml2 and libarchive. If you use conda-forge's packages, make sure you have libiconv as a dependency. If you're mixing conda-forge and defaults packages, you might need to figure out a way to use a more pure conda-forge stack or a more pure defaults stack. We will work to unify these, but it will take time.
@betatim I was able to build an image with the same "unknown" repo2docker version, I tested it on this repo: https://github.com/ecohydro/CropMask_RCNN and https://github.com/binder-examples/conda .
I'll make sure to include libiconv as a dependency, thanks for the suggestion @msarahan
Just saw this on Binder
Traceback (most recent call last):
File "/srv/conda/bin/conda-env", line 6, in <module>
from conda_env.cli.main import main
File "/srv/conda/lib/python3.7/site-packages/conda_env/cli/main.py", line 39, in <module>
from . import main_create
File "/srv/conda/lib/python3.7/site-packages/conda_env/cli/main_create.py", line 12, in <module>
from conda.cli import install as cli_install
File "/srv/conda/lib/python3.7/site-packages/conda/cli/install.py", line 19, in <module>
from ..core.index import calculate_channel_urls, get_index
File "/srv/conda/lib/python3.7/site-packages/conda/core/index.py", line 9, in <module>
from .package_cache_data import PackageCacheData
File "/srv/conda/lib/python3.7/site-packages/conda/core/package_cache_data.py", line 15, in <module>
from conda_package_handling.api import InvalidArchiveError
File "/srv/conda/lib/python3.7/site-packages/conda_package_handling/api.py", line 12, in <module>
from .tarball import CondaTarBZ2 as _CondaTarBZ2, libarchive_enabled
File "/srv/conda/lib/python3.7/site-packages/conda_package_handling/tarball.py", line 11, in <module>
import libarchive
File "/srv/conda/lib/python3.7/site-packages/libarchive/__init__.py", line 1, in <module>
from .entry import ArchiveEntry
File "/srv/conda/lib/python3.7/site-packages/libarchive/entry.py", line 6, in <module>
from . import ffi
File "/srv/conda/lib/python3.7/site-packages/libarchive/ffi.py", line 27, in <module>
libarchive = ctypes.cdll.LoadLibrary(libarchive_path)
File "/srv/conda/lib/python3.7/ctypes/__init__.py", line 434, in LoadLibrary
return self._dlltype(name)
File "/srv/conda/lib/python3.7/ctypes/__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libiconv.so.2: cannot open shared object file: No such file or directory```
Actually the Pangeo binder..
Bug description
It looks like that I'm getting a dependency error when building a docker image with repo2docker form an environment.yaml, but not when using
conda env create -f environment.yaml
. I've included the traceback below.Expected behaviour
No dependency error wince I don't get this when I just call the conda command
Actual behaviour
I get the following traceback.
How to reproduce
git clone https://github.com/agroimpacts/pyatsa.git
python3 -m pip install https://github.com/jupyter/repo2docker/archive/master.zip
jupyter-repo2docker pyatsa
Your personal set up
rave at rave-thinkpad in ~ [10:13:19]
→ docker version
Client: Version: 18.09.7 API version: 1.39 Go version: go1.10.1 Git commit: 2d0083d Built: Wed Jul 3 12:13:59 2019 OS/Arch: linux/amd64 Experimental: false
Server: Engine: Version: 18.09.7 API version: 1.39 (minimum version 1.12) Go version: go1.10.1 Git commit: 2d0083d Built: Mon Jul 1 19:31:12 2019 OS/Arch: linux/amd64 Experimental: false
repo2docker --version
rave at rave-thinkpad in ~ [10:15:24]
→ repo2docker --version
0+unknown
I just installed the latest version from master today, so that might be why the version is "0+unknown"