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

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 使用Dockerfile构建python项目镜像(flask框架+redis+环境变量),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1、设置环境变量

有时候如连接redis的url可能发生变化等,这时候就需要把一些变量放在环境变量中。

1.1 启动设置docker run –env

        使用–env-e是一样效果的。

1.1.1 配置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.1.2 编写python示例程序

示例代码:

import os
from flask import Flask
from redis import StrictRedis

redis_url = os.environ.get('REDIS_URL', 'redis://127.0.0.1:6379/1')

app = Flask(__name__)
s = StrictRedis.from_url(redis_url)


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


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

1.1.3 构建镜像

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

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

开始构建镜像:

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

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

查看打包好的镜像:

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

1.1.4 启动镜像

docker run -d --name my_flask_redis_env0 -p 5002:5000 --env REDIS_URL=redis://default:root@192.168.124.49:6380/1 flask_redis_env0

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

浏览器进行访问:

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

1.2 打包设置dockerfile 

        在通过Dockerfile打包镜像的时候可以配置环境变量。

1.2.1 配置Dockerfile文件

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

FROM python:3.9.16-slim

WORKDIR /src
ENV FLASK_APP=app.py
ENV REDIS_URL=redis://default:root@192.168.124.49:6380/1
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.2.2 编写python示例程序

示例代码:

import os
from flask import Flask
from redis import StrictRedis

redis_url = os.environ.get('REDIS_URL', 'redis://127.0.0.1:6379/1')

app = Flask(__name__)
s = StrictRedis.from_url(redis_url)


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


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

1.2.3 构建镜像

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

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

开始构建镜像:

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

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

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

查看打包好的镜像:

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

1.2.4 启动镜像

docker run -d --name my_flask_redis_env -p 5001:5000 flask_redis_env

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

浏览器进行访问:

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

1.3 启动加载文件docker run –env-file

        先把环境变量配置文件放在一个文件中。

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

 1.3.1 配置Dockerfile文件

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

FROM python:3.9.16-slim

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

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

1.3.2 编写python示例程序

示例代码:

import os
from flask import Flask
from redis import StrictRedis

redis_url = os.environ.get('REDIS_URL', 'redis://127.0.0.1:6379/1')

app = Flask(__name__)
s = StrictRedis.from_url(redis_url)


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


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

1.3.3 构建镜像

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

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

开始构建镜像:

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

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

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

查看打包好的镜像:

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

1.3.4 启动镜像

docker run -d --name my_flask_redis_env2 -p 5003:5000 --env-file env_vairable.txt flask_redis_env2

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

浏览器进行访问:

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

2、查看环境变量

2.1 使用docker inspect

        通过docker inspect命令不仅能查看环境变量,还能查看容器其它相关信息,非常丰富,以Json格式输出。

docker inspect my_flask_redis_env

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

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

可以通过grep命令过滤一下:

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

2.2 使用docker exec env

        这种方式获取的环境变量就跟获取linux环境变量是一样的。只是在容器跑了个env命令而已。

docker exec my_flask_redis_env env

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

参考博文:

如何查看Docker容器环境变量,如何向容器传递环境变量

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/142746.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!