为python flask web应用程序构建Docker镜像。图像未显示或requirements.txt未找到

时间:2017-04-24 17:04:50

标签: python docker flask dockerfile

我正在尝试创建一个使用Docker创建的webapp的构建,但我没有成功。我曾尝试过两个不同的教程,但都没有为我工作

关注Tutorial 1: 构建似乎完成没有任何问题,但我无法在任何地方找到图像文件,并且' sudo docker ps -a'一无所获。

通过thtutorial 2: 我现在收到另一个错误,即找不到需求文件。我在这里查找了解决方案,但似乎我正在使用&ADFF requirements.txt / webapp'将其添加到构建中。命令。我检查了我拼写要求是对的,哈哈。现在我确实在&sudo docker ps -a'中看到了它,但是我没有看到任何图像文件,如果我这样做,可能会无法正常工作,因为它无法找到要求。

我对错误以​​及如何正确构建码头工具感到困惑。如何让它找到需求文件,然后完成" Build"命令,实际上有一个图像。该图像存储在哪里?

以下是我在完成第二个教程后的设置。

Dockerfile

$filename = 'img/' . basename($_FILES['image']['tmp_name']);
move_uploaded_file($_FILES['image']['tmp_name'], $filename);
$text = mysql_real_escape_string($_POST['text']);
$sql = "INSERT INTO `{$db["posts"]}` (`img`, `text`) VALUES ('$filename', '$text')";

要求

FROM ubuntu:latest

#Update OS
RUN sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get -y upgrade

# Install Python
RUN apt-get install -y python-dev python-pip

# Add requirements.txt
ADD requirements.txt /webapp

# Install uwsgi Python web server
RUN pip install uwsgi

# Install app requirements
RUN pip install -r requirements.txt

# Create app directory
ADD . /webapp

# Set the default directory for our environment
ENV HOME /webapp
WORKDIR /webapp

# Expose port 8000 for uwsgi
EXPOSE 8000


ENTRYPOINT ["uwsgi", "--http", "0.0.0.0:8000", "--module", "app:app", "--processes", "1", "--threads", "8"]
CMD ["app.py"]

目录结构(如果重要)

Flask==0.12.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.5
SQLite3==3.18.0

&#39>的当前输出sudo docker ps -a'

app.py
image_data.db
README.txt
requirements.txt
Dockerfile
templates
 - index.html
static/
 - image.js
 - main.css
 img/
   - camera.png
 images/
   - empty

1 个答案:

答案 0 :(得分:2)

requirements.txt应与dockerfile存在于同一目录中。我从dockerfile中看到requirements.txt被添加到webapp但是

RUN pip install -r requirements.txt

正试图在当前目录中找到它;您可能需要将rquirement.txt复制到当前目录,如

ADD requirements.txt .

让我们看看是否有效。我没有测试它。

您可以通过

查看图片
docker images 

然后像

一样运行它
docker run -t image_name