Als Memorandum, weil ich jedes Mal vergesse, wie man es baut.
project
L Dockerfile
L app.py
Dockerfile Da es eine Möglichkeit gibt, eine Bibliothek zu installieren, die Java verwendet, wird default-jdk hinzugefügt.
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
Wechseln Sie in das Dockerfile-Verzeichnis und führen Sie den Docker-Build-Befehl aus. Der Bau dauert einige Minuten.
$ cd project
$ docker build -t image_name --force-rm=true .
# (-t Bildname)Entscheiden Sie den Bildnamen selbst
# (--force-rm=true)Wenn die Image-Erstellung fehlschlägt, wird das Image automatisch gelöscht
Wenn Sie den Zeichenbefehl ausführen, wird das Jupyter-Notizbuch automatisch gestartet, sodass Sie das Jupyter-Notizbuch verwenden können, indem Sie auf die angezeigte URL zugreifen.
#Führen Sie den folgenden Befehl im selben Verzeichnis wie oben aus
$ 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=####################
#Eine Adresse wie diese wird angezeigt. Kopieren Sie daher jedes Token und fügen Sie es ein.
Wenn Sie bei der Arbeit mit Jupyter Notebook die fehlende Bibliothek von außerhalb des Containers installieren möchten, geben Sie den Container mit dem folgenden Befehl ein.
$ cd project
$ docker exec -it container_name /bin/bash
#Wenn Sie den Container mit dem obigen Befehl betreten, wechselt das Terminal wie unten gezeigt.
root@Nutzername:/notebook#Hier können Sie Befehle eingeben.
#Installationsbeispiel
root@Nutzername:/notebook# pip install numpy
Erstellen Sie app.py im selben Verzeichnis wie Dockerfile und führen Sie den folgenden Code und Befehl aus, um die Anwendung zu starten.
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