averbis / IRuta

A UIMA Ruta kernel for Jupyter Notebook.
Apache License 2.0
7 stars 1 forks source link

Cannot build docker #14

Closed scheiblr closed 2 years ago

scheiblr commented 2 years ago

Describe the bug Cannot build the docker image as suggested in README.md

To Reproduce

  1. Clone repo
  2. cd into it
  3. checkout 0.2.0 tag
  4. docker build --no-cache -t iruta .

Expected behavior should build the docker container

Error message

 => ERROR [stage-0  2/13] COPY --from=python:3.8 / /                                                         12.7s
------
 > [stage-0  2/13] COPY --from=python:3.8 / /:
------
cannot copy to non-directory: /var/lib/docker/overlay2/jvudg1whiiogyd5h8c9xeycpb/merged/usr/share/doc/perl-base

Please complete the following information:

Additional context I think it would be comfortable and save time to publish a baked and versioned docker container on docker hub.

DavidHuebner commented 2 years ago

Thanks for the issue/feedback.

I have looked into it. I could replicate it only on my Windows system (but and not on my Ubuntu 20.04 system).

To fix it, I changed the logic in the Dockerfile to install Python based on an Ubuntu base image, and not copying Python from another Docker image. With that, I could successfully build it on Windows and Ubuntu. The pull request is here: https://github.com/averbis/IRuta/pull/15

It is a very good idea to directly push the compiled image to Dockerhub. Thanks for the suggestion. We will look into it.

DavidHuebner commented 2 years ago

Hi Raphael,

I could now implement your suggestion and publish a IRuta Docker Image to Dockerhub. Starting a Jupyter Notebook with IRuta Kernel is now as easy as

  1. Downloading and executing the latest image of IRuta: docker pull averbis/iruta:latest && docker run -p 8888:8888 averbis/iruta:latest
  2. Open a browser and go to localhost:8888. This should display a Jupyter Notebook including the introduction examples and ruta training. image

Please note that all changes in this Docker container are not persistent! To obtain a persistent environment, a Volume needs to be mounted using the --mount flag in Docker (see: https://docs.docker.com/storage/volumes/)