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的服务器。
开始构建镜像:
docker image build -f ./Dockerfile -t flask_redis_env0 .
查看打包好的镜像:
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
浏览器进行访问:
1.2 打包设置dockerfile
在通过Dockerfile打包镜像的时候可以配置环境变量。
1.2.1 配置Dockerfile文件
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的服务器。
开始构建镜像:
docker image build -f ./Dockerfile -t flask_redis_env .
查看打包好的镜像:
1.2.4 启动镜像
docker run -d --name my_flask_redis_env -p 5001:5000 flask_redis_env
浏览器进行访问:
1.3 启动加载文件docker run --env-file
先把环境变量配置文件放在一个文件中。
1.3.1 配置Dockerfile文件
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的服务器。
开始构建镜像:
docker image build -f ./Dockerfile -t flask_redis_env2 .
查看打包好的镜像:
1.3.4 启动镜像
docker run -d --name my_flask_redis_env2 -p 5003:5000 --env-file env_vairable.txt flask_redis_env2
浏览器进行访问:
2、查看环境变量
2.1 使用docker inspect
通过docker inspect命令不仅能查看环境变量,还能查看容器其它相关信息,非常丰富,以Json格式输出。
docker inspect my_flask_redis_env
可以通过grep命令过滤一下:
2.2 使用docker exec env
这种方式获取的环境变量就跟获取linux环境变量是一样的。只是在容器跑了个env命令而已。
docker exec my_flask_redis_env env
参考博文:文章来源:https://www.toymoban.com/news/detail-722181.html
如何查看Docker容器环境变量,如何向容器传递环境变量文章来源地址https://www.toymoban.com/news/detail-722181.html
到了这里,关于使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!