Dockerfile encountered an issue
XinQi7788 opened this issue · comments
Hi Kersten:
Execution
I use the freesurfer-module-dev branch, inside the docker folder, I tried to build the docker image by
$docker build -t qatools_dev .
At step 8, encountered the requirement file has an issue.
...
Screenshots
Step 8/14 : RUN pip3 install cat /app/qatools-python/requirements.txt | grep -v "importlib" | grep -v "#.*"
---> Running in 3fed17167290
Collecting cycler==0.11.0
Downloading https://files.pythonhosted.org/packages/5c/f9/695d6bedebd747e5eb0fe8fad57b72fdf25411273a39791cde838d5a8f51/cycler-0.11.0-py3-none-any.whl
Collecting kiwisolver==1.3.2
Could not find a version that satisfies the requirement kiwisolver==1.3.2 (from versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 1.0.0, 1.0.1, 1.1.0, 1.2.0, 1.3.0, 1.3.1)
No matching distribution found for kiwisolver==1.3.2
The command '/bin/sh -c pip3 install cat /app/qatools-python/requirements.txt | grep -v "importlib" | grep -v "#.*"
' returned a non-zero code: 1
Environment
- qatools-python Version: freesurfer-module-dev branch
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
Also, I revised the requirement file by change the line 9 as kiwisolver==1.3.1, but got another error at step 8 saying as below, but the requirement file is at the ~/Xin/WORK/qatools-python-freesurfer-module-dev/.
Step 8/14 : RUN pip3 install cat ~/Xin/WORK/qatools-python-freesurfer-module-dev/requirements.txt | grep -v "importlib" | grep -v "#.*"
---> Running in 8d17cba5efbf
cat: /root/Xin/WORK/qatools-python-freesurfer-module-dev/requirements.txt: No such file or directory
You must give at least one requirement to install (see "pip help install")
Removing intermediate container 8d17cba5efbf
---> 1ee53c761fe4
Step 9/14 : ENV FREESURFER_HOME=/opt/freesurfer
---> Running in d35a23ff3d84
Removing intermediate container d35a23ff3d84
---> 2f8078d6a316
Step 10/14 : ENV OMP_NUM_THREADS=1
---> Running in e57d74a85ab2
Removing intermediate container e57d74a85ab2
---> 33579938b8bc
Step 11/14 : ENV PATH=/opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:/opt/freesurfer/mni/bin:${PATH}
---> Running in 0f37291974e8
Removing intermediate container 0f37291974e8
---> e4612d87e247
Step 12/14 : ENV PYTHONPATH=/app/lapy:/app/brainprint:${PYTHONPATH}
---> Running in 2228fa854683
Removing intermediate container 2228fa854683
---> ec0bebe57533
Step 13/14 : WORKDIR /app
---> Running in 548886b9586f
Removing intermediate container 548886b9586f
---> ca8d6aad4e6c
Step 14/14 : ENTRYPOINT ["python3", "/app/qatools-python/qatools.py"]
---> Running in bd5660a34078
Removing intermediate container bd5660a34078
---> 3c7a796be608
Looking forward to your reply. Thank you very much.
Xin
Thanks, Xin. I could replicate the issue. I speculate that the workaround does not work because in the Dockerfile, the pathnames refer to the environment within the Docker (not the host system) and I do not know an easy way to map from the host into the Docker during the build process. So the solution will be to adjust the requirements file in the repository, but I still need to consider what the best solution will be. I will upload a fix within the next few days. FYI, I also have the code ready for including surface screenshots, which we discussed previously, and that will also be included after some more testing.
Hi Kersten: Thank you for a quick update!
in the requirement.txt file, I removed the version-specific information and add scikit-image inside the requirements.txt.
requirements.txt
Just tested inside the built docker container, it seems to work fine.
2). Thanks for including the surface screenshots functionality.
Best
Xin
Hi, sorry for the late reply, I hope you already saw the recent (end of March) update of the development version including the surface pipeline. If I remember correctly, the docker issue could also be solved by moving from Ubuntu 18.04 to 20.04.
Best regards, Kersten