#python #docker
Вопрос:
Я создал образ докера из следующего файла докера:
FROM python:3.6.4-slim-jessie
COPY . /app
WORKDIR /app
RUN pip install pandas
RUN pip install numpy
RUN pip install -U flask
RUN pip install networkx
ENTRYPOINT [ "python3" ]
CMD [ "flask_vis.py" ]
Он в значительной степени просто загружает необходимые пакеты для приложения flask (flask_vis.py). Когда контейнер запущен, приложение должно запуститься.
Вот соответствующие строки из flask_vis.py:
from flask import Flask, render_template, url_for, request, redirect
import pandas as pd
import networkx as nx
import time
app = Flask(__name__)
print("Reading pickles...")
start = time.time()
edges_df=pd.read_pickle("edges_table.pkl")
print("done with 1")
nodes_df=pd.read_pickle("nodes_table_all_labelled.pkl")
print("done with 2")
ev_df=pd.read_pickle("evidence.pkl")
print("done with 3")
print(f"Took {round(time.time() - start, 3)}s to load pickles.")
G = nx.from_pandas_edgelist(edges_df, edge_attr=True, source="source_id", target="target_id", create_using=nx.DiGraph())
@app.route('/', methods=["POST","GET"])
def home():
if request.method=="POST":
query_type=request.form["query_type"]
if query_type=="Query with Dijkstra's algorithm":
query_type="dijkstra"
return redirect(url_for("validate", query_type=query_type))
else:
query_type="single"
return redirect(url_for("validate", query_type=query_type))
else:
return render_template("home.html")
Я построил контейнер с docker build --tag appname .
Когда я запускал его с docker run -t -p 5001:5001 appname
помощью консоли, он выводил «Чтение соленых огурцов», «готово с 1» и «готово с 2». Однако контейнер закрывался до того, как он читал третий рассол. Это происходит, когда я запускаю контейнер на mac, но он работает в Windows. Почему это происходит? Есть ли какой-нибудь способ заставить его работать и на mac?
Комментарии:
1. Как выглядит
docker logs
результат?2. Они пустые; в них нет никаких ошибок