docker-compose的flask自动部署

#本例子的环境为 docker:Docker version 18.09.7       docker-composer:docker-compose version 1.23.1

1.目录结构:

2.docker的安装

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

3.docker-compose的安装

#先下载docker-compose二进制wnejian
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#再赋予该文件可执行权限
sudo chmod +x /usr/local/bin/docker-compose

#最后检查docker-compose是否安装成功
docker-compose --version

4.docker-compose.yaml的内容

version: "3.6"
services:
  flask-web:
    build: .
    ports:
      - "5000:5000"
    container_name: flask-web
  redis:
    image: redis
    container_name: redis3
#  PS:注意缩进,每层的空格数要保持一直,特别注意冒号在参数设置时留出一个空格
#ps:这个是在服务上设置的,如在本地的虚拟上,可能会出问题

 5.Dockerfile文件的内容

#flask web app v1.0
# 搭建一个基于flask的web项目,实现了简单的访问统计
# 第一步: 获取一个镜像: python3.6
FROM python:alpine3.6
# 第二部: 拷贝项目代码到镜像中 ADD(自动尝试解压缩,不建议)/COPY
COPY ./flask-web-code /code
# 第三部: 安装项目的依赖环境: 第三方模块 flaks reids
# 切换工作目录用WORKDIR,类似于cd命令
WORKDIR /code
RUN pip install -r requirements.txt
# 第四部: 配置项目的启动 CMD参数 python app.py
CMD ["python", "app.py"]

  6.app.py文件的内容

import time

import redis
from flask import Flask

app = Flask(__name__)
# 此处host是docker-compose.yaml配置文件中 redis的服务的名称
cache = redis.Redis(host=‘redis‘, port=6379)
def get_hit_count():
     """利用redis统计访问次数"""
     retries = 5
     # 由于当redis重启时,可能会有短暂的无法访问redis
     # 循环的在作用默认重试5次
     while True:
         try:
              # redis的incr方法, 如果hits值存在自动+1, 否则新增该键,值为1
             return cache.incr(‘hits‘)
         except redis.exceptions.ConnectionError as e:
             if retries == 0:
                 raise e
             retries -= 1
             time.sleep(0.5)

@app.route(‘/‘)
def main():
     count = get_hit_count()
     return "欢迎访问! 网站已累计访问{}次\n".format(count)
if __name__ == ‘__main__‘:
     app.run(host=‘0.0.0.0‘, debug=True)

  7. requirements.txt文件的内容

#环境依赖包
redis
flask

  8.启动

sudo docker-compose up#ps:在case1-flask-web的文件下输入

  

 

  

原文地址:https://www.cnblogs.com/117698ai/p/12331163.html

时间: 2024-08-30 11:44:13

docker-compose的flask自动部署的相关文章

有容云:实战总结之 利用Docker、Docker Compose &Rancher构建持续部署

前言: 本文由John Patterson . Chris Lunsford写于2016年4月4日,译者有容云张向波,转载请注明出处.(原文链接见文末) 作者John Patterson和Chris Lunsford 运营了一家提供运营和基础架构服务的公司,本文是他们给大家分享的内容:关于如何通过使用Docker.Docker-Compose和Rancher来实现容器部署落地. 我们想跟你一起从头开始体验整个过程,特别是之间遇到的一些痛点和所做的决策.目前,已经有许多的资源和工具可以与Docke

(十)Docker Compose安装与创建Flask web应用

Docker Compose 是 Docker 官方编排(Orchestration)项目之一, 负责快速在集群中部署分布式应用. Dockerfile 可以让用户管理一个单独的应用容器:而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个Web服务容器再加上后端的数据库服务容器等. 安装 该项目由 Python 编写,实际上调用了 Docker 提供的 API 来实现. 通过pip安装. $ python3 -m

Docker Compose 项目打包部署

Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知使用 Docker Compose 可以轻松.高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 Docker 和 Compose兼容性看下图:          

Gitlab CI 自动部署 asp.net core web api 到Docker容器

为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成.监控报警.以及扩容和高可用性的问题.是学习和探索的过程分享给大家,也欢迎同行的人交流. 先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例.这是第一步,通过此文您将了解如何将net core web api 运行在Docker

使用docker实现半自动化代码自动部署与回滚

最近开发docker的caas平台,目前已经开发完成,在优化性能与套模板.对于docker最近是很好,很多人把docker做为vm来使用,当然作为测试来说是没问题,但我感觉docker本身在做沙箱.自动化部署与回滚方面更适合,下面介绍一下我这里是如何通过docker实现代码半自动化部署. 目前我这里已经实现能结合svn或者git代码库,对node.php.java代码进行半自动化部署,先给大家截图看效果,感觉满意在继续细看. 总界面如下 点击左上角的"新增开放项目"就可以新建立测试,下

基于docker的gitlab+gitlabrunner+ansible自动部署

本文不适合与新手!!!需要对底层非常的熟悉,这个在国内不是很常用,是为了跟老外的环境兼容. 过多的理论知识这里就不去过多的阐述. 系统架构图 网络架构 一.安装docker,确保hostname没有问题 ,查看/etc/hostname./etc/hosts. https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-docker-ce-1 二.安装dcoekr-compose,这边还是要去官网看看,每

Docker(八)用docker compose部署服务

用docker compose部署服务 docker compose可以方便我们快捷高效地管理容器的启动.停止.重启等操作,它类似linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像.数据卷.网络模式.监听端口等信息.我们可以在一个compose文件中定义一个多容器的应用,然后通过该compose来启动这个应用. 下载安装docker-compose # curl -L https://github.com/docker/compose/release

Docker Compose 一键部署Nginx代理Tomcat集群

Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [[email protected] ~]# tree compose_nginx_tomcat/ compose_nginx_tomcat/ ├── docker-compose.yml ├── mysql │   ├── conf │   │   └── my.cnf │   └── data ├── nginx │   ├── Dockerfile │   ├── nginx-1.12.1.tar.gz │  

centos7 部署 docker compose

=============================================== 2019/4/10_第1次修改                       ccb_warlock =============================================== 将原先docker swarm的文章拆分后,我决定将docker compose的部署内容单独整理成文章,使得部署逻辑更清晰. docker compose是docker容器批量编排的工具,可以通过1个yml