Comme mémorandum car j'oublie à chaque fois comment le construire.
project
L Dockerfile
L app.py
Dockerfile Puisqu'il est possible d'installer une bibliothèque qui utilise java, default-jdk est ajouté.
Dockerfile
FROM python:3.6
RUN apt-get update && apt-get install -y \
default-jdk \
build-essential \
gfortran \
libblas-dev \
liblapack-dev \
libxft-dev \
swig \
&& rm -rf /var/lib/apt/lists/*
RUN echo 'export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"' >> ~/.bash_profile && \
. ~/.bash_profile && \
cd ~ &&\
git clone https://github.com/taku910/mecab.git && \
cd mecab/mecab && \
./configure --enable-utf8-only && \
make && \
make check && \
make install && \
cd ../mecab-ipadic && \
./configure --with-charset=utf8 && \
make && \
make install &&\
cd ~ &&\
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git && \
cd mecab-ipadic-neologd && \
./bin/install-mecab-ipadic-neologd -n -y
RUN pip3 install --upgrade pyzmq --install-option="--zmq=bundled" && \
pip3 install --upgrade jupyter && \
pip3 install --upgrade \
pandas \
neologdn \
Flask \
numpy \
Pillow \
tensorflow \
ENV LD_LIBRARY_PATH "/usr/local/lib:$LD_LIBRARY_PATH"
VOLUME /notebook
WORKDIR /notebook
EXPOSE 8888
ENTRYPOINT jupyter notebook --ip=0.0.0.0 --allow-root --no-browser
Accédez au répertoire Dockerfile et exécutez la commande docker build. La construction prendra quelques minutes.
$ cd project
$ docker build -t image_name --force-rm=true .
# (-t nom de l'image)Décidez vous-même du nom de l'image
# (--force-rm=true)Si la création de l'image échoue, l'image sera supprimée automatiquement
Lorsque vous exécutez la commande de dessin, le notebook Jupyter démarre automatiquement, vous pouvez donc utiliser le notebook Jupyter en accédant à l'URL affichée.
#Exécutez la commande suivante dans le même répertoire que ci-dessus
$ docker run -v `pwd`:/notebook -p 8888:8888 -p 5000:5000 -it --name container_name image_id /bin/bash
# http://127.0.0.0:8888/?token=####################
#Une adresse comme celle-ci apparaîtra, alors copiez et collez chaque jeton.
Si vous travaillez sur un notebook Jupyter et que vous souhaitez installer les bibliothèques manquantes, de l'extérieur du conteneur, entrez le conteneur avec la commande ci-dessous.
$ cd project
$ docker exec -it container_name /bin/bash
#Lorsque vous entrez dans le conteneur avec la commande ci-dessus, le terminal bascule comme indiqué ci-dessous.
root@Nom d'utilisateur:/notebook#Vous pourrez entrer des commandes ici.
#Exemple d'installation
root@Nom d'utilisateur:/notebook# pip install numpy
Créez app.py dans le même répertoire que Dockerfile et exécutez le code et la commande suivants pour démarrer l'application.
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World!"
if __name__ == '__main__':
app.run()
$ python hello.py
Recommended Posts