如何以docker-container的身份运行bottle应用程序?

时间:2019-06-17 14:09:22

标签: python docker bottle

我制作了bottle-framework-application,它在localhost上运行良好。我使用virtualenv。

然后我构建docker容器。我的Dockerfile:

FROM ubuntu
COPY . .
RUN /bin/bash -c "source venv/bin/activate"
ENTRYPOINT /bin/bash -c "python3 index.py"

对它的OK进行双处理:

(venv) kalinin@md ~/python/bottler $ docker build -t bottler .
Sending build context to Docker daemon  26.07MB
Step 1/4 : FROM ubuntu
 ---> 7698f282e524
Step 2/4 : COPY . .
 ---> 9e182c969051
Step 3/4 : RUN /bin/bash -c "source venv/bin/activate"
 ---> Running in 2022e2fa7600
Removing intermediate container 2022e2fa7600
 ---> 16209d249539
Step 4/4 : ENTRYPOINT python3 index.py
 ---> Running in 84594de70d72
Removing intermediate container 84594de70d72
 ---> d5057555ab1a
Successfully built d5057555ab1a
Successfully tagged bottler:latest

构建后,我尝试运行容器:

docker run -i -t --rm -p 8000:8000 bottler

但是请遵循以下错误消息:

/bin/bash: python3: command not found

请帮助我运行应用程序。运行后,我需要在浏览器中查看应用程序。

2 个答案:

答案 0 :(得分:1)

将您的Dockerfile更改为

FROM ubuntu
COPY . .
RUN apt-get update
RUN apt-get -y install python3
RUN apt-get -y install python3-pip
RUN pip install bottle
RUN /bin/bash -c "source venv/bin/activate"
ENTRYPOINT /bin/bash -c "python3 index.py"

尝试一下,让我知道。

答案 1 :(得分:0)

首先,我建议您使用python映像https://hub.docker.com/_/python中的一个,因为您正在使用的ubuntu映像可能未预安装python。

第二,我建议您将ENTRYPOINT定义为单个命令/可执行文件-在您的情况下为python

ENTRYPOINT ["python"]

然后在CMD定义中将路径添加到.py文件

CMD ["index.py"]

您遇到的问题是,在ubuntu映像中,$ PATH中未找到python可执行文件,因为它尚未预安装。您应该在ubuntu映像之上安装python,或者只是使用docker hub中已经存在的python映像