docker-compose 部署python项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-compose 部署python项目相关的知识,希望对你有一定的参考价值。

参考技术A

docker-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部署java项目

基于Docker-Compose 部署前后端分离单体项目(一)

flask+uwsgi+nginx+docker-compose部署

使用Docker-Compose对项目进行部署

使用Docker-Compose对项目进行部署