espnet / espnet

End-to-End Speech Processing Toolkit
https://espnet.github.io/espnet/
Apache License 2.0
8.54k stars 2.19k forks source link

Docker installation #2616

Closed shehrum closed 4 years ago

shehrum commented 4 years ago

I am trying to run the arctic/vc1 recipe with Docker. I get the following missing dependency error. I'm a bit new to Docker, can anyone guide me on how to install these in the Docker container.

ubuntu@ip-172-31-45-147:~/espnet/docker$ ./run.sh --docker-gpu 0 --docker-egs arctic/vc1 --ngpu1
Using image espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu.
Executing application in Docker
NV_GPU='0' nvidia-docker run -i --rm --name espnet_gpu0_20201101T1432 -v /home/ubuntu/espnet/egs:/espnet/egs -v /home/ubuntu/espnet/espnet:/espnet/espnet -v /home/ubuntu/espnet/test:/espnet/test -v /home/ubuntu/espnet/utils:/espnet/utils espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu /bin/bash -c 'cd /espnet/egs/arctic/vc1; ./run.sh --ngpu1'
Error: parallel_wavegan is not installed.
Error: Please install via `. ./path.sh && pip install -U parallel_wavegan`
run.sh done.
kamo-naoyuki commented 4 years ago

How about the following?

nvidia-docker run (omitted...) /bin/bash -c 'cd /espnet/egs/arctic/vc1; . ./path.sh && pip install -U parallel_wavegan; ./run.sh --ngpu1'

shehrum commented 4 years ago

Thankyou for the response! I tried changing the run.sh file, and included the command. However, it still failed unfortunately.

NV_GPU='0' nvidia-docker run -i --rm --name espnet_gpu0_20201102T0955 -v /home/ubuntu/espnet/egs:/espnet/egs -v /home/ubuntu/espnet/espnet:/espnet/espnet -v /home/ubuntu/espnet/test:/espnet/test -v /home/ubuntu/espnet/utils:/espnet/utils espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu /bin/bash -c 'cd /espnet/egs/arctic/vc1; . ./path.sh && pip install -U parallel_wavegan; ./run.sh --ngpu1'

Complete log:

ubuntu@ip-172-31-45-147:~/espnet/docker$ ./run.sh --docker-gpu 0 --docker-egs arctic/vc1 --ngpu1
gpu-cuda10.1-cudnn7-u18: Pulling from espnet/espnet
5d9821c94847: Pull complete 
a610eae58dfc: Pull complete 
a40e0eb9f140: Pull complete 
372a43704132: Pull complete 
ea79e89399a9: Pull complete 
d4fbf6be2816: Pull complete 
e443a32b5973: Pull complete 
b39467f27689: Pull complete 
4d2686ced2e2: Pull complete 
6e1a234fb0d2: Pull complete 
400cedd97c7d: Pull complete 
c1901b2b3395: Pull complete 
0f7af5e2098e: Pull complete 
1604de1985c4: Pull complete 
2de8d21d6924: Pull complete 
630a66c9ec0e: Pull complete 
24a59cd1616b: Pull complete 
Digest: sha256:6ef8485fd392d56d34ff2873746e50c4269f30689d7c04f34c7de0dd0e18e816
Status: Downloaded newer image for espnet/espnet:gpu-cuda10.1-cudnn7-u18
docker.io/espnet/espnet:gpu-cuda10.1-cudnn7-u18
Building docker image...
Now running docker build --build-arg FROM_TAG=gpu-cuda10.1-cudnn7-u18 --build-arg THIS_USER=ubuntu --build-arg THIS_UID=1000 -f prebuilt/Dockerfile -t espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu .
Sending build context to Docker daemon  58.37kB
Step 1/8 : ARG FROM_TAG
Step 2/8 : FROM espnet/espnet:${FROM_TAG}
 ---> 51fa2733ccf6
Step 3/8 : LABEL maintainer "Nelson Yalta <nyalta21@gmail.com>"
 ---> Running in cdce5e2dae96
Removing intermediate container cdce5e2dae96
 ---> bc69597c2e09
Step 4/8 : ARG THIS_USER
 ---> Running in ee31b7e6f4f5
Removing intermediate container ee31b7e6f4f5
 ---> 74dbf87e9b62
Step 5/8 : ARG THIS_UID
 ---> Running in 0c7f2977596c
Removing intermediate container 0c7f2977596c
 ---> 9a85b05a2df7
Step 6/8 : RUN if [ ! -z "${THIS_UID}"  ]; then     useradd -m -r -u ${THIS_UID} -g root ${THIS_USER};     fi
 ---> Running in b8a14ca1ff99
Removing intermediate container b8a14ca1ff99
 ---> 21bf93095600
Step 7/8 : USER ${THIS_USER}
 ---> Running in 17ab252377fa
Removing intermediate container 17ab252377fa
 ---> 15482bc06d91
Step 8/8 : WORKDIR /
 ---> Running in 5411d66d5e00
Removing intermediate container 5411d66d5e00
 ---> 81541c236949
Successfully built 81541c236949
Successfully tagged espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu
Using image espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu.
Executing application in Docker
NV_GPU='0' nvidia-docker run -i --rm --name espnet_gpu0_20201102T0955 -v /home/ubuntu/espnet/egs:/espnet/egs -v /home/ubuntu/espnet/espnet:/espnet/espnet -v /home/ubuntu/espnet/test:/espnet/test -v /home/ubuntu/espnet/utils:/espnet/utils espnet/espnet:gpu-cuda10.1-cudnn7-u18-user-ubuntu /bin/bash -c 'cd /espnet/egs/arctic/vc1; . ./path.sh && pip install -U parallel_wavegan; ./run.sh --ngpu1'
Error: parallel_wavegan is not installed.
Error: Please install via `. ./path.sh && pip install -U parallel_wavegan`
Error: parallel_wavegan is not installed.
Error: Please install via `. ./path.sh && pip install -U parallel_wavegan`
run.sh done.
Fhrozen commented 4 years ago

@shehrum, Could you check #2622. if you run . ./path.sh, it will raise you the error because path.sh is the one that checks for the library. Also, executing as a part of the run command does not install parallel-wavegan in the container, but in the session. So, it will be required to install every time. On the PR, I added the commands required for executing artic/vc1. Given that this is not yet merged, I will recommend you to copy them on the same files as the PR.