EPFL-LCSB / skimpy

Symbolic Kinetic Models with Python
Apache License 2.0
30 stars 14 forks source link

Failure to install from Dockerfile in Windows and WSL2 (Ubuntu 20.04) #7

Closed AQ18 closed 2 years ago

AQ18 commented 2 years ago

I have failed to run SKiMpy following the Docker instructions on both Windows and WSL2 (Ubuntu 20.04 distribution). (I have also failed running it from source code, but I am prepared to accept that is probably my ineptitude rather than a problem with the code or documentation.)

Docker: Windows

Running build.bat seems to work fine, but run.bat leads to docker: invalid reference format.

Docker: WSL2 (Ubuntu-20.04)

I tried building and running the Docker image in a clean installation of the Ubuntu 20.04 distro on Windows Subsystem for Linux. Again . build worked fine, but . run exited with error Failed to build scikits.odes, full message here.

From source

Finally, attempting to install from source on WSL2 following the instructions in #5 failed with a similar if not identical message to above.

(Attempt to install from source on Windows was abandoned because trying to install SUNDIALS was demoralizing.)

weilandtd commented 2 years ago

Hi @AQ18,

(Attempt to install from source on Windows was abandoned because trying to install SUNDIALS was demoralizing.)

so yes I am sorry SUNDIALS is indeed annoying to install I fought with it myself. Unfortunately, it encompasses the most efficient ODE solvers and you will need these solvers in case you want to integrate large reactions systems.

I am currently working to make its installation optional though so the distribution of SKiMpy will be easier.

Running build.bat seems to work fine, but run.bat leads to docker: invalid reference format.

Do you have any more info on this error message? I just ran these scripts recently on a Windows machine of a colleague and it worked so I would be interested to find out why it does work for you.

I tried building and running the Docker image in a clean installation of the Ubuntu 20.04 distro on Windows Subsystem for Linux. Again . build worked fine, but . run exited with error Failed to build scikits.odes, full message here.

I am sorry for this I failed to push the update of the SUNDIALS to the installation script, the new scikits.odes packages need a new version of sundials, not 3.1.1. I will push this fix later in the afternoon (EST).

AQ18 commented 2 years ago

Do you have any more info on this error message? I just ran these scripts recently on a Windows machine of a colleague and it worked so I would be interested to find out why it does work for you.

That's the only message printed. I'm completely new to Docker, so if you know of some sort of flag I can pass to it to generate a more verbose error message then let me know.

I am sorry for this I failed to push the update of the SUNDIALS to the installation script, the new scikits.odes packages need a new version of sundials, not 3.1.1. I will push this fix later in the afternoon (EST).

No worries, I'll keep an eye out for the fix and try again then!

AQ18 commented 2 years ago

Tried to build the new version. Unfortunately it still fails but for different reasons, and the behaviour is at least consistent between Windows and Ubuntu this time.

This version's Docker build errors out with

 => ERROR [17/26] COPY ./solvers /solvers                                                                                                                                                            0.0s
------
 > [17/26] COPY ./solvers /solvers:
------
failed to compute cache key: "/solvers" not found: not found

which I think is caused by the deletion of /solvers/instructions.txt. I checked out the latest version of that file and the build succeeded.

However, running the image fails with the error ERROR: /skimpy/docker/pytfa is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file). I assume this is to do with the fact that I don't have /skimpy/docker/pytfa.

I tried going into the Dockerfile and switching the ENTRYPOINT from

ENTRYPOINT ["/bin/bash", "-c", "pip install --user -e /skimpy/docker/pytfa && \
                                pip install --user -e /skimpy/docker/mfapy && \
                                pip install --user -e /skimpy[ORACLE] && \
                                $0 $*"]

to

ENTRYPOINT ["/bin/bash", "-c", "pip install --user -e /skimpy[ORACLE] && \
                               $0 $*"]

which produced a new error message: ERROR: file:///skimpy does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.

weilandtd commented 2 years ago

Hi, yes things happening when you do stuff in a hurry....

So I tested the build and run on Windows 10 using native docker WSL and it works for me.

which produced a new error message: ERROR: file:///skimpy does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml'

Do you allow file sharing in the docker/wsl? Or do you have a file named skimpy in one of the folders maybe a zip from GitHub?

AQ18 commented 2 years ago

With the latest fix, the Docker builds and runs successfully for me on both Ubuntu (WSL) and Windows 10!

Running build.bat seems to work fine, but run.bat leads to docker: invalid reference format.

I realised that this is due to my workplace's filesystem having whitespace in the names; going into run.bat and wrapping %CD% in quote marks fixed this.

which produced a new error message: ERROR: file:///skimpy does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml'

Do you allow file sharing in the docker/wsl? Or do you have a file named skimpy in one of the folders maybe a zip from GitHub?

Docker had completely default settings, so it wasn't that. I think I may have been running the Docker image from the GUI or with the VS Code Docker extension. When I looked inside run and run.bat I saw that the image needs to be run with the -v (--volume) option, and failing to do that means that those volumes are invisible. Using run or my edited run.bat fixed the problem and allowed me to play around in the container.

The tests pass with three warnings. However, most (all?) the tutorial scripts error out. I will start a new issue for those though.

weilandtd commented 2 years ago

This should be resolved with the latest release. Tested it on Windows 11 and 10 and Ubuntu WSL2.0