1、設(shè)置環(huán)境變量
有時(shí)候如連接redis的url可能發(fā)生變化等,這時(shí)候就需要把一些變量放在環(huán)境變量中。
1.1 啟動(dòng)設(shè)置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}個(gè)人訪問此頁(yè)面!"
if __name__ == '__main__':
app.run()
1.1.3 構(gòu)建鏡像
????????首先將python代碼和dockerfile文件上傳到已經(jīng)安裝了docker的服務(wù)器。
開始構(gòu)建鏡像:
docker image build -f ./Dockerfile -t flask_redis_env0 .
查看打包好的鏡像:
1.1.4 啟動(dòng)鏡像
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
瀏覽器進(jìn)行訪問:
1.2 打包設(shè)置dockerfile?
????????在通過Dockerfile打包鏡像的時(shí)候可以配置環(huán)境變量。
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}個(gè)人訪問此頁(yè)面!"
if __name__ == '__main__':
app.run()
1.2.3 構(gòu)建鏡像
????????首先將python代碼和dockerfile文件上傳到已經(jīng)安裝了docker的服務(wù)器。
開始構(gòu)建鏡像:
docker image build -f ./Dockerfile -t flask_redis_env .
查看打包好的鏡像:
1.2.4 啟動(dòng)鏡像
docker run -d --name my_flask_redis_env -p 5001:5000 flask_redis_env
瀏覽器進(jìn)行訪問:
1.3 啟動(dòng)加載文件docker run --env-file
????????先把環(huán)境變量配置文件放在一個(gè)文件中。
?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}個(gè)人訪問此頁(yè)面!"
if __name__ == '__main__':
app.run()
1.3.3 構(gòu)建鏡像
????????首先將python代碼和dockerfile文件上傳到已經(jīng)安裝了docker的服務(wù)器。
開始構(gòu)建鏡像:
docker image build -f ./Dockerfile -t flask_redis_env2 .
查看打包好的鏡像:
1.3.4 啟動(dòng)鏡像
docker run -d --name my_flask_redis_env2 -p 5003:5000 --env-file env_vairable.txt flask_redis_env2
瀏覽器進(jìn)行訪問:
2、查看環(huán)境變量
2.1 使用docker inspect
????????通過docker inspect命令不僅能查看環(huán)境變量,還能查看容器其它相關(guān)信息,非常豐富,以Json格式輸出。
docker inspect my_flask_redis_env
可以通過grep命令過濾一下:
2.2 使用docker exec env
????????這種方式獲取的環(huán)境變量就跟獲取linux環(huán)境變量是一樣的。只是在容器跑了個(gè)env命令而已。
docker exec my_flask_redis_env env
參考博文:文章來源:http://www.zghlxwxcb.cn/news/detail-722181.html
如何查看Docker容器環(huán)境變量,如何向容器傳遞環(huán)境變量文章來源地址http://www.zghlxwxcb.cn/news/detail-722181.html
到了這里,關(guān)于使用Dockerfile構(gòu)建python項(xiàng)目鏡像(flask框架+redis+環(huán)境變量)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!