From 33b9f6d48c60e01405fe9badbdb053cbd33ccff9 Mon Sep 17 00:00:00 2001 From: Knine Date: Sat, 16 Dec 2023 21:40:52 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Docker=E3=80=915.=20Dockerfile=20?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E5=92=8C=E7=AE=A1=E7=90=86=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E5=8C=96=E5=BA=94=E7=94=A8=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- course/Docker/5-Dockerfile/Dockerfile | 24 +++++++++++++++++++++ course/Docker/5-Dockerfile/README.md | 20 +++++++++++++++++ course/Docker/5-Dockerfile/requirements.txt | 1 + course/Docker/5-Dockerfile/src/app.py | 10 +++++++++ 4 files changed, 55 insertions(+) create mode 100644 course/Docker/5-Dockerfile/Dockerfile create mode 100644 course/Docker/5-Dockerfile/README.md create mode 100644 course/Docker/5-Dockerfile/requirements.txt create mode 100644 course/Docker/5-Dockerfile/src/app.py diff --git a/course/Docker/5-Dockerfile/Dockerfile b/course/Docker/5-Dockerfile/Dockerfile new file mode 100644 index 0000000..a42dac0 --- /dev/null +++ b/course/Docker/5-Dockerfile/Dockerfile @@ -0,0 +1,24 @@ + +# 使用官方 Python 3 镜像作为基础镜像 +FROM python:3 + +# 设置工作目录 +WORKDIR /app + +# 将当前目录下的 requirements.txt 复制到容器中 +COPY requirements.txt . + +# 安装应用程序依赖项 +RUN pip install --no-cache-dir -r requirements.txt + +# 将当前目录下的所有文件复制到容器中的 /app 目录 +COPY ./src . + +# 暴露容器的端口 +EXPOSE 5000 + +# 定义环境变量 +ENV FLASK_APP=app.py + +# 运行应用程序 +CMD ["flask", "run", "--host=0.0.0.0"] diff --git a/course/Docker/5-Dockerfile/README.md b/course/Docker/5-Dockerfile/README.md new file mode 100644 index 0000000..357cdbf --- /dev/null +++ b/course/Docker/5-Dockerfile/README.md @@ -0,0 +1,20 @@ +## 命令 + +> 1. build +> `docker buildx build . -t my-python-flask-web:1.0` +> 注意build之后的 `.`,否则会报错:`ERROR: "docker buildx build" requires exactly 1 argument.` + + +> 2. run +> `docker run --name my-python-flask-web -p 5000:5000 my-python-flask-web:1.0` +> - --name 指定 容器名字 +> - -p 绑定端口 + + +> 3. 再次启动 start +> `docker start my-python-flask-web` + + +> 4. push +> `docker tag my-python-flask-web:1.0 kinghz/my-python-flask-web:1.0` +> `docker push kinghz/my-python-flask-web:1.0` \ No newline at end of file diff --git a/course/Docker/5-Dockerfile/requirements.txt b/course/Docker/5-Dockerfile/requirements.txt new file mode 100644 index 0000000..8ab6294 --- /dev/null +++ b/course/Docker/5-Dockerfile/requirements.txt @@ -0,0 +1 @@ +flask \ No newline at end of file diff --git a/course/Docker/5-Dockerfile/src/app.py b/course/Docker/5-Dockerfile/src/app.py new file mode 100644 index 0000000..f33391c --- /dev/null +++ b/course/Docker/5-Dockerfile/src/app.py @@ -0,0 +1,10 @@ +from flask import Flask + +app = Flask(__name__) + +@app.route('/') +def hello(): + return 'Hello, World!' + +if __name__ == '__main__': + app.run() -- GitLab