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

这篇具有很好参考价值的文章主要介绍了使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 python 环境变量,Docker,flask,python,docker

开始构建镜像:

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

docker python 环境变量,Docker,flask,python,docker

查看打包好的镜像:

docker python 环境变量,Docker,flask,python,docker

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

docker python 环境变量,Docker,flask,python,docker

浏览器进行访问:

docker python 环境变量,Docker,flask,python,docker

1.2 打包设置dockerfile 

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

1.2.1 配置Dockerfile文件

docker python 环境变量,Docker,flask,python,docker

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 python 环境变量,Docker,flask,python,docker

开始构建镜像:

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

docker python 环境变量,Docker,flask,python,docker

docker python 环境变量,Docker,flask,python,docker

查看打包好的镜像:

docker python 环境变量,Docker,flask,python,docker

1.2.4 启动镜像

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

docker python 环境变量,Docker,flask,python,docker

浏览器进行访问:

docker python 环境变量,Docker,flask,python,docker

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

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

docker python 环境变量,Docker,flask,python,docker

 1.3.1 配置Dockerfile文件

docker python 环境变量,Docker,flask,python,docker

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 python 环境变量,Docker,flask,python,docker

开始构建镜像:

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

docker python 环境变量,Docker,flask,python,docker

docker python 环境变量,Docker,flask,python,docker

查看打包好的镜像:

docker python 环境变量,Docker,flask,python,docker

1.3.4 启动镜像

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

docker python 环境变量,Docker,flask,python,docker

浏览器进行访问:

docker python 环境变量,Docker,flask,python,docker

2、查看环境变量

2.1 使用docker inspect

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

docker inspect my_flask_redis_env

docker python 环境变量,Docker,flask,python,docker

docker python 环境变量,Docker,flask,python,docker

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

docker python 环境变量,Docker,flask,python,docker

2.2 使用docker exec env

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

docker exec my_flask_redis_env env

docker python 环境变量,Docker,flask,python,docker

参考博文:

如何查看Docker容器环境变量,如何向容器传递环境变量文章来源地址https://www.toymoban.com/news/detail-722181.html

到了这里,关于使用Dockerfile构建python项目镜像(flask框架+redis+环境变量)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Dockerfile构建nginx镜像

     雨雀:使用Dockerfile构建nginx镜像 · 语雀 (yuque.com)  yaml文件用法:02 Docker三剑客之一-Dockerfile · 语雀 (yuque.com) 1.使用Dockerfile构建nginx镜像 2.编写Dockerfile yaml文件用法:02 Docker三剑客之一-Dockerfile · 语雀 (yuque.com) 3.构建镜像 4.运行镜像   

    2024年02月12日
    浏览(82)
  • Docker 解析:使用 Dockerfile 自动构建镜像

    简介 Docker 容器是使用 基础 镜像创建的。一个镜像可以是基本的,只包含操作系统的基本要素,也可以包含一个准备好启动的复杂的预构建应用程序堆栈。 在使用 Docker 构建镜像时,每个操作(例如执行的命令,比如 apt-get install)都会形成一个新的层叠在之前的层之上。然

    2024年03月26日
    浏览(60)
  • 手把手教你使用Flask框架构建Python接口以及如何请求该接口

    Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。 Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。Flask提供了基本的Web开发工具和应用程序的结构,但同时也允许开发者自由选择其他库

    2024年02月06日
    浏览(107)
  • Docker技术入门| Part03:Dockerfile详解(Dockerfile概念、Dockerfile 指令、使用Dockerfile构建镜像)

    Docker镜像原理 Docker镜像是由特殊的文件系统叠加而成 最底端是bootfs,并使用宿主机的bootfs 第二层是root文件系统rootfs,称为base image 然后再往上可以叠加其他的镜像文件 统文件系统(UnionFile System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统的视角,这样就隐

    2024年02月09日
    浏览(64)
  • 使用Dockerfile来构建服务的镜像,并部署在容器中

    在项目的根目录下,创建Dockerfile 基础写法: 对上面的每一行进行详细说明: (1) FROM openjdk:8-jre-slim 基础镜像 【这个镜像包含了 OpenJDK 8 (Java 运行环境)和一个精简版的操作系统。】 (2) MAINTAINER Forrest 镜像的作者 (3) ENV PARAMS=\\\"\\\" TZ=PRC 1)设置环境变量 2)PARAMS表示传给m

    2024年01月22日
    浏览(41)
  • 使用dockerfile手动构建JDK11镜像运行容器并校验

    Docker官方维护镜像的公共仓库网站 Docker Hub 国内无法访问了,大部分镜像无法下载,准备逐步构建自己的镜像库。【转载aliyun官方-容器镜像服务 ACR】Docker常见问题 阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托

    2024年02月03日
    浏览(42)
  • 【云原生】Docker镜像的创建 Dockerfile 多阶段构建原理和使用场景

    创建镜像有三种方法,分别为【基于已有镜像创建】、【基于本地模板创建】以及【基于Dockerfile创建】。 (1)首先启动一个镜像,在容器里做修改  docker run -it --name web centos:7 /bin/bash     #启动容器  ​  yum install -y epel-release  #安装epel源  yum install -y nginx         #安装ng

    2024年02月12日
    浏览(55)
  • 使用Dockerfile构建自定义jdk镜像,在使用jdk镜像创建一个容器来外部访问(一步一步来哦~好简单的呢)

    文章主人公:帅哥BUG😎  文章路人: 路人 🤨  路人 😛 🤨:什么是dockerfile? 😎:Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像,另外,使 用Dockerfile去构建镜像好比使用pom去构建maven项目一样,有异曲同工之妙 😛:知道了知道了,

    2024年02月09日
    浏览(56)
  • 如何在 Linux 命令行下玩转 Docker——如何使用 Dockerfile 来构建和运行容器镜像

    作者:禅与计算机程序设计艺术 Docker 是一款开源的容器化技术,它利用 Linux 内核的容器特性,将应用部署到独立的进程环境中。基于容器技术可以极大地提高开发者和运维人员的效率,降低部署、测试和生产环节中的成本,有效地实现云计算资源的弹性伸缩。 本文主要介绍

    2024年02月07日
    浏览(59)
  • SpringBoot项目 使用Dockerfile创建镜像与容器

    这里我使用的是云服务器,Centos7-Linux操作系统 需要以下环境支持 1、maven环境 2、java环境 3、springboot项目 maven环境 可以去我这个博客了解\\\'\\\'配置MAVEN环境-CSDN博客\\\'\\\' java环境 可以去\\\'\\\' java环境变量配置-CSDN博客\\\'\\\' springboot项目 先来简单创建一个springboot项目 一、进入IDEA的终端 使用

    2024年03月28日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包