当前位置:网站首页>docker compose 部署Flask项目并构建redis服务
docker compose 部署Flask项目并构建redis服务
2022-06-29 18:56:00 【季布,】
创建redis配置文件目录
(base) [email protected]:~/redis/conf$ pwd
/home/lx/redis/conf
# 修改权限
(base) [email protected]:~$ chmod 777 redis/
(base) [email protected]:~$ cd /home/lx/redis/conf
#下载redis的配置文件
(base) [email protected]:~$ wget http://download.redis.io/redis-stable/redis.conf
#更改配置文件
(base) [email protected]:~$vim redis.conf
自定义redis.conf配置文件
#开启保护 默认为yes 可以跳过这一步
protected-mode yes
#开启远程连接 这样所有的ip都可以访问了
#bind 127.0.0.1
#自定义密码
requirepass 12345678
port 6379
timeout 0
# 900s内至少一次写操作则执行bgsave进行RDB持久化
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
构建Dockerfile
FROM python:3.6
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple/
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
EXPOSE 8000
使用docker-compose创建Redis并管理flask项目
#设置docker compose版本
version: "3.8"
# 设置服务,固定写法
services:
# flask项目服务
duplicate_checking:
# 从当前目录查找dockerfile构建镜像
build: .
# 生成的镜像名和版本号
image: duplicate_checking:1.0
# 重启docker引擎后该容器也重启
restart: always
# 项目依赖的redis服务
depends_on:
- dupchecking_redis
# 镜像启动后的容器名
container_name: "compose-dupchecking"
# 将duplicate-checking项目映射到容器中/app目录下(这样容器中也有一份完整的项目代码)
volumes:
- "/home/lx/workshop/duplicate-checking:/app:rw"
# 容器启动后执行的命令
command:
- /bin/sh
- -c
- "cd /app
&& export FLASK_APP=app
&& gunicorn -t 300 -w 4 -b 0.0.0.0:8000 'app:create_app()'"
# 端口映射(将宿主机的8090端口映射到容器中的8000端口,这样的话通过访问宿主机的8090可以简介访问容器中的8000端口)
ports:
- "8090:8000"
# 使用的网段
networks:
- app_net
# redis服务(和项目中的依赖redis同名)
dupchecking_redis:
# 从镜像仓库拉去最新的redis镜像
image: redis:latest
restart: always
container_name: "compose-dupcheckingredis"
ports:
- "6381:6379"
command:
- /bin/bash
- -c
# 通过宿主机映射进容器的配置文件启动redis服务
- "redis-server /etc/redis/redis.conf"
volumes:
- $PWD/data:/data
# 将宿主机的redis.conf配置文件映射到容器中
- $PWD/conf/redis.conf:/etc/redis/redis.conf
# 这里的网段和上面的项目网段同名,表示在同一网段中
networks:
- app_net
networks:
app_net:
边栏推荐
猜你喜欢
随机推荐
JS judge whether the array key name exists
Selenium WebDriver的高级特性
Meta agent model can be migrated to resist attacks
程序员值得收藏的几款代码截图美化工具播
What is a multi paradigm programming language and what does "multi paradigm" mean?
信息系统项目管理师---第七章项目成本管理历年考题
Wechat launched the picture big bang function; Apple's self-developed 5g chip may have failed; Microsoft solves the bug that causes edge to stop responding | geek headlines
CentOS 7.5 install MySQL 8.0.27---yum
【历史上的今天】6 月 29 日:SGI 和 MIPS 合并;微软收购 PowerPoint 开发商;新闻集团出售 Myspace
第三方工具与框架集成
Mac: MySQL 66 questions, 20000 words + 50 pictures!
Cantata 9.5版本已正式通过SGS-TÜV认证,符合所有主要软件安全标准
ovirt数据库修改删除节点
The table ‘table_name‘ is full 异常排查及解决方案
第三方工具與框架集成
How to use the low code platform of the Internet of things for service management?
Using protobuf to link MySQL in unrealeengine plug-in
产品-Axure9(英文版),中继器(Repeater)实现表格内容的增删查改(CRUD)
Shandong University project training (VIII) design rotation map entry page
C语言数组专题训练









