Мне нужно установить окружение в моем Dockerfile (я не могу использовать docker -compose, потому что мне понадобится этот dockerfile для kubernetes). Вот мой Dockerfile:
FROM tensorflow/tensorflow:2.1.0-py3
RUN apt -qq -y update \
&& apt -qq -y upgrade
WORKDIR /socialworks-api
COPY . /socialworks-api
RUN python -m pip install --upgrade pip
RUN apt -y install git
#for mysql
RUN apt install -y libmysqlclient-dev
RUN pip --no-cache-dir install -r requirements.txt
EXPOSE 5000
CMD ["/bin/bash", "./start.sh"]
Вот мой старт. sh file:
#!/bin/bash
export $(grep -v '^#' env/docker.env | xargs)
source env/docker.env
python app.py
Вот где я запускаю мой flask сервер в app.py:
if __name__ == '__main__':
print("test")
socketio.run(app, host="0.0.0.0", debug=True, use_reloader=False)
Проблема в том, что после этих команд я пытаюсь запустить свой контейнер docker, и сервер flask запускается (он даже печатает тест в терминале), и когда я пытаюсь запустить http://0.0.0.0: 5000 / Мне не удалось подключиться к проблеме в браузере. Может быть, проблема с CMD в моем файле dockerfile или в файле start. sh? Я новичок в Docker. Любая помощь будет оценена. Локально все отлично работает. Вот команда, которую я использую для запуска контейнера docker:
docker run -it flaskapp
Вот docker пс:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
337f1bdacb3e flaskapp "/bin/bash ./start.sh" 44 seconds ago Up 42 seconds 5000/tcp dazzling_mcclintock
Вот журналы:
docker logs 337f1bdacb3e
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data] Unzipping tokenizers/punkt.zip.
2020-04-20 10:02:44.287504: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-04-20 10:02:44.309581: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2394225000 Hz
2020-04-20 10:02:44.310031: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x4971910 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-04-20 10:02:44.310068: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
test
(10) wsgi starting up on http://0.0.0.0:5000
Логи те же, что и при локальном запуске, все работает. Может ли быть так, что приложение flask как-то останавливается при запуске?