docker-compose 部署python项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-compose 部署python项目相关的知识,希望对你有一定的参考价值。
参考技术Adocker-compose.yml
启动容器
项目文件夹:demo01 的结构
app.py文件内容如下:
requirements.txt文件内容如下:
Dockerfile文件内容如下:
Dockerfile还可以这样写:
和上一种写法稍稍有一点区别 。
docker-compose.yml
启动
打开链接: http://localhost:5000
使用Docker-Compose对项目进行部署
需求
为了便于项目进行部署,将之前的多条docker启动命令进行了整合,使其运行更加便利。
docker-compose.yml文件
version: '2.2'
services:
# api 接口 6075
twe:
build: ./twe
container_name: twe
restart: always
ports:
- "6075:5000"
volumes:
- ./twe:/app
depends_on:
twe_mysql:
condition: service_started
twe_redis:
condition: service_started
twe_neo4j:
condition: service_started
twe_geoserver:
condition: service_started
links:
- twe_mysql
- twe_redis
- twe_neo4j
- twe_geoserver
# mysql
twe_mysql:
image: mysql:5.6
container_name: twe_mysql
restart: always
ports:
- "6076:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./mysql:/var/lib/mysql
# mysql 在线管理 6077, 账号密码 root 123456
twe_phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: twe_phpmyadmin
restart: always
ports:
- "6077:80"
environment:
MYSQL_ROOT_PASSWORD: 123456
links:
- twe_mysql:db
# redis
twe_redis:
image: redis:5
container_name: twe_redis
restart: always
ports:
- "6078:6379"
# neo4j 在线管理 7474,连接7687,账号密码 neo4j 8888
twe_neo4j:
image: neo4j:3.5.14
container_name: twe_neo4j
restart: always
ports:
- "7474:7474"
- "7687:7687"
volumes:
- ./neo4j:/data
# geoserver 在线管理 6079, 账号密码 admin geoserver
twe_geoserver:
image: oscarfonts/geoserver
container_name: twe_geoserver
restart: always
ports:
- "6079:8080"
volumes:
- ./geoserver:/var/local/geoserver
# / 接口文档,/pt 平台原型
twe_apache:
image: php:7.2-apache
container_name: twe_apache
restart: always
ports:
- "6081:80"
volumes:
- ./apache:/var/www/html
目录结构
进入该目录下,直接使用以下命令
docker-compose up -d
总结
在这之前,项目进行部署将使用多个docker命令分别去进行部署,如下
phpmyadmin + mysql
docker run -it -d --restart=always --link mysql:db -e MYSQL_ROOT_PASSWORD=123456 -p 8088:80 phpmyadmin/phpmyadmin
docker run -it -d --restart=always --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.6
neo4j
docker run -it -d --restart=always -p 7475:7474 -p 7687:7687 -v D:\\water\\neo4j:/data neo4j:3.5.14
geoserver
docker run -it -d --restart=always -p 8080:8080 -v D:\\water\\geoserver:/var/local/geoserver oscarfonts/geoserver
apache
docker run -it -d --restart=always -p 81:80 -v D:\\water\\apache:/var/www/html php:7.2-apache
redis
docker run -it -d --restart=always -p 6380:6379 -v /root/redis:/data redis:latest redis-server --appendonly yes
项目镜像
docker build -t tw:latest .
docker run -it -d --restart=always -p 10022:22 -p 6075:5000 tw:latest
需要按顺序执行以上docker命令才可以将项目启动。
以上是关于docker-compose 部署python项目的主要内容,如果未能解决你的问题,请参考以下文章
docker-compose 部署 Vue+SpringBoot 前后端分离项目
基于Docker-Compose 部署前后端分离单体项目(一)