我制作了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
请帮助我运行应用程序。运行后,我需要在浏览器中查看应用程序。
答案 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映像