diff --git a/course/Docker/5-Dockerfile/Dockerfile b/course/Docker/5-Dockerfile/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a42dac0b312a08ace8a3f3a6058cd33306f7ff26 --- /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 0000000000000000000000000000000000000000..357cdbf67609aba72990b9176cd5f7c8be882fde --- /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 0000000000000000000000000000000000000000..8ab6294c6b5339b46e123e5ac62dd6651ae09c68 --- /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 0000000000000000000000000000000000000000..f33391c6ba22ec4b50eb98ebc830f37d40acb30f --- /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()