使用Dockerfile构建python项目镜像(flask框架+redis)

1、flask+redis简单实例

1.1 python程序

        本文以python的flask框架+redis数据库构建一个简单的测试用例。

示例代码:

from flask import Flask
from redis import StrictRedis

app = Flask(__name__)
s = StrictRedis.from_url('redis://default:root@192.168.124.49:6380/1')


@app.route('/index')
def index():
    count = s.incr('count', 1)
    return f"您是第{count}个人访问此页面!"


if __name__ == '__main__':
    app.run()

1.2 Dockerfile文件

示例代码;

FROM python:3.9.16-slim

WORKDIR /src
ENV FLASK_APP=app.py
COPY app.py /src/app.py
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

EXPOSE 5000
CMD ["flask", "run", "-h", "0.0.0.0"]

1.3 构建镜像

        首先将python代码和dockerfile文件上传到已经安装了docker的服务器。

开始构建镜像:

docker image build -f ./Dockerfile -t flask_redis_py .

查看打包好的镜像:

1.4 启动新镜像

docker run -d --name my_flask_redis -p 5000:5000 flask_redis_py

浏览器进行访问:

1.5 查看容器日志

2、注意事项

下面图片中run写法打包完的镜像运行可能出现问题。

镜像启动时可能出现下述情况,估计是因为&并行安装执行导致的,亲测多次打包镜像,有一次打包的镜像是可以运行的。

将上述dockerfile文件中的run改为下面方法可以避免上述问题:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤来构建Python镜像并安装相应的包: 1. 首先,在你的项目目录下创建一个名为 `Dockerfile` 的文件。 2. 在 `Dockerfile` 中指定基础镜像。例如,使用官方的 Python 3.8 镜像:`FROM python:3.8` 3. 安装你需要的包。可以使用 `RUN` 命令来运行安装命令。例如,安装 Flask 和 numpy 包:`RUN pip install Flask numpy` 4. 将你的项目代码复制到容器中。可以使用 `COPY` 命令来复制文件。例如,复制当前目录下的所有文件到容器的 `/app` 目录下:`COPY . /app` 5. 设置容器的工作目录。可以使用 `WORKDIR` 命令来设置工作目录。例如,设置容器的工作目录为 `/app`:`WORKDIR /app` 6. 暴露容器的端口。可以使用 `EXPOSE` 命令来暴露端口。例如,暴露容器的端口为 `5000`:`EXPOSE 5000` 7. 指定容器启动时要运行的命令。可以使用 `CMD` 命令来指定启动命令。例如,启动 Flask 应用:`CMD ["python", "app.py"]` 下面是一个示例的 `Dockerfile` 文件: ``` FROM python:3.8 RUN pip install Flask numpy COPY . /app WORKDIR /app EXPOSE 5000 CMD ["python", "app.py"] ``` 在项目目录下运行以下命令来构建镜像: ``` docker build -t my-python-app . ``` 这将会构建一个名为 `my-python-app` 的镜像。你可以使用以下命令来运行该镜像: ``` docker run -p 5000:5000 my-python-app ``` 这将会启动容器,并将容器的端口 `5000` 映射到主机的端口 `5000`。你可以通过访问 `http://localhost:5000` 来访问你的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值