Попытка развернуть приложение flask с помощью docker

python #docker #flask #uwsgi

#python #docker #flask #uwsgi

Вопрос:

Я пытаюсь развернуть свой код python flask на своем Linux сервере и следую инструкциям, приведенным в этой ссылке, и я изменил необходимые файлы, поскольку в моем проекте есть app.py static templates папки и и . requirements.txt уже присутствует. вот содержимое измененных файлов:

uwsgi.ini

 [uwsgi]
module = app
callable = app
master = true
 

Dockerfile такой же

start.sh

 #!/bin/bash
app="docker.test"
docker build -t ${app} .
docker run -d -p 56733:80 
  --name=${app} 
  -v $PWD:/app ${app}
 

и когда я открываю веб-страницу, она не загружается должным образом, а изображения и код css отсутствуют. Я развернул его heroku , и все работает отлично. Не могли бы вы помочь мне, где я допускаю ошибку?

Редактировать: файл Docker:

 FROM tiangolo/uwsgi-nginx-flask:python3.6-alpine3.7
RUN apk --update add bash nano
ENV STATIC_URL /static
ENV STATIC_PATH /var/www/app/static
COPY ./requirements.txt /var/www/requirements.txt
RUN pip install -r /var/www/requirements.txt
 

Файловая структура моего проекта

Ответ №1:

Сопоставление томов в start.sh кажется неправильным, исходная папка должна быть сопоставлена с /var/www/ следующим образом

 -v $PWD:/var/www/ ${app}
 

Кроме того, ваша статическая папка находится в корне вашего проекта, в примере она находится в папке приложения, поэтому либо переместите ее в папку приложения, либо исправьте инструкцию ENV следующим образом :

 ENV STATIC_PATH /var/www/app/static