docker:从零开始部署一个python的hello world并debug(其他语言同理)
2023-09-27 14:27:10 时间
准备工作
python 代码 app.py:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "hello docker"
if __name__ == '__main__':
app.run()
运行:
pip install flask
python app.py
# Running on http://127.0.0.1:5000/
开始写Dockerfile
mkdir flask-hello-wordl
cd flask-hello-wordl
touch Dockerfile
# app.py 就是上面的 Python 代码
touch app.py
Dockerfile
FROM python:2.7
LABEL "maintainer=Yu Zhang<zy@xx.cmo>"
RUN pip install flask
COPY app.py /app
WORKDIR /app
# 暴露端口,否则只有本地可访问
EXPOSE 5000
CMD ["python", "app.py"]
运行
docker build -t zy/flask-hello-world .
这时可以看到第 5 步报了个错,我们如何分析这个错误呢
我们知道每一层都会创建一个临时的容器,这里会显示这个容器的镜像id
我们运行进入第 5 步的容器
docker run -it 镜像id /bin/bash
这样我们进入了这个容器,发现 app 不是一个目录,而是我们刚刚写的 py 文件
我们犯了一个错误
分析
COPY app.py /app
我们是把 app.py 复制到了 / 目录,并取了个新名字叫 app,那么如何改呢
COPY app.py /app/
改完重新 build 一下就成功啦
最后,运行
docker run -d zy/flask-hello-world
运行成功!以后排错知道该怎么办了吧~
相关文章
- Python中的random模块
- 5 分钟,教你用 Docker 部署一个 Python 应用
- python - 如何使用 Docker 运行多个 Python 脚本和一个可执行文件?
- Python函数传入的参数是否改变(函数参数、指针、引用)
- Python爬虫高手必备的8大技巧!
- Python 成为最受欢迎的语言靠实力吗?
- Python中的枚举对象有什么用?怎样用内置函数enumerate()得到枚举对象?Python的for循环和C++的for循环有何区别?Python中for循环的本质是什么?
- 《Python数据科学指南》——1.23 采用键排序
- 《Python Cookbook(第2版)中文版》——1.10 过滤字符串中不属于指定集合的字符
- python爬虫入门(二)Opener和Requests
- python之tkinter使用-复选框操作
- Python学习---JSON补充内容[中文编码 + dumps解析]
- Python列表
- 【Python】pycharm ctrl shift f 失效