前提・実現したいこと
dockerfileを用いてespnetの環境構築をしている。
dockerfile内でcreateした環境下でapp.pyを走らせたい。
現状環境外で走ってしまっている様子。
docker-compose up後にbashで入り、conda info -eをした結果は下記
conda info -e # conda environments: # /root/anaconda3 base * /root/anaconda3/envs/espnet
作成した環境が作成されている様子。
この状態でpip list
をすると必要なライブラリは入っている。
そのまま手動にてpython3 app.py
を実行すると、エラーは発生しない。
いちいちbashで入って、app.pyを立ち上げるようなことはしたくない(ec2上で公開し、毎日ec2を停止・再起動する予定のため)。
発生している問題・エラーメッセージ
ModuleNotFoundError: No module named 'torch'
該当のソースコード(関係部分抜粋)
FROM nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 USER root RUN apt-get update RUN wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh RUN bash Anaconda3-2021.05-Linux-x86_64.sh -b RUN rm Anaconda3-2021.05-Linux-x86_64.sh ENV PATH $PATH:/root/anaconda3/bin RUN git clone http://github.com/espnet/espnet.git RUN conda update -n base -c defaults conda # このコマンドでespnetという環境が作成されている RUN cd espnet/tools/ && ./setup_anaconda.sh /root/anaconda3/bin/.. espnet 3.8 && make -j 8 SHELL ["conda", "run", "-n", "espnet", "/bin/bash", "-c"] RUN pip3 install torch flask pyopenjtalk espnet==0.10.0 RUN conda init bash WORKDIR /app COPY ./app /app CMD ["python3", "app.py"]
試したこと
Before
1RUN conda init bash 2 3WORKDIR /app 4COPY ./app /app 5 6CMD ["python3", "app.py"]
After
1 2WORKDIR /app 3COPY ./app /app 4 5RUN conda init bash && echo "conda activate espnet" >> ~/.bashrc && python3 app.py
こちらは、app.pyの実行がずっとなされないのか、これ以降のrunningのまま先に進まなくなった。
補足情報(FW/ツールのバージョンなど)
- docker-compose version 1.29.2
- Docker version 20.10.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。