• docker-compose 实践


    docker-compose 实践

    git :

    删除本地文件后,git pull不下来?删除文件也是一个操作,会有git管理记录。所以,这个文件是删除状态,pull不下来
    

    docker-compose:

    注意:

    docker-compose up :从0开始搭建各种容器
    docker-compose down : 停止各种容器,并且删除容器!!!
    所以,mysql这种数据库最好不要编排
    
    注意!!!
    docker-compose 部署的容器中,必须有前置进程才能保证容器,运行了命令后,不立即退出。
    比如,部署了django服务,但是,是后台运行。这个容器会立即退出。必须前台启动django服务才可以。
    

    实例:

    version: "3"
    services:
      linde_sub:
        image: ${AAA}
        restart: always
        build: '.'
        volumes:
          - ./deploy_dirs/output/:/usr/output
          - /etc/localtime:/etc/localtime
          - ${BASE_DIR}/:/usr  # 项目文件,映射一下
        command: /bin/bash -c "cd /usr/linde_ai_gater/src/linde && PYTHONIOENCODING=utf-8 && touch aps.lock && python manage.py makemigrations && python manage.py migrate && rm aps.lock && gunicorn linde.wsgi -c gunicorn_config.py"
        env_file:
          - ./.env
        environment:
          DB_HOST: ${DB_HOST}
          DB_PORT: ${DB_PORT}
          BASE_DIR: ${BASE_DIR}
          AI_HOST: ${AI_HOST}
          AI_PORT: ${AI_PORT}
          PROENV: ${PROENV}
        ports:
          - 8000:8000
      nginx:
        image: nginx:latest
        restart: always
        build: '.'
        volumes:
          - ./deploy_dirs/html:/usr/share/nginx/html  # 前端打包文件
          - ./deploy_dirs/nginx.conf:/etc/nginx/nginx.conf  # nginx 配置文件
          - ./deploy_dirs/log:/var/log/nginx  # nginx 日志
        ports:
          - 80:80
          - 8002:8002
    

    运行实例的shell脚本

    docker-compose -f docker_compose.yml stop && docker-compose -f docker_compose.yml up -d
    

    mysql.yml

    version: "3"
    services:
      mysql:
        image: mysql:5.6.50
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: linde4396
          TZ: Asia/Shanghai
        volumes:
          - ./deploy_dirs/conf:/etc/mysql/mysql.conf.d/mysqld.cnf  # 配置文件
          - ./deploy_dirs/initdb:/docker-entrypoint-initdb.d  # 初始化脚本,比如创建数据库
        ports:
          - 3306:3306、
    

    初始化脚本 .sql

    # 如果不存在数据库aaa,就创建
    CREATE DATABASE if not exists aaa DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
    

    环境变量 .env ,必须放到与 docker_compose.yml 文件同级目录下,或者 env_file 指定文件

    BASE_DIR=/root/
    LINDE_SUB_IMAGE=sub_image:latest
    DB_HOST=127.0.0.1
    DB_PORT=3306
    AI_HOST=10.8.0.6
    AI_PORT=5001
    PROENV=pro
    

    django 配置文件夹 : projectsrclindesettingsase_settings.py,dev.py,pro.py

    uwsgi.py 文件 和 manage.py 文件,修改读取配置的文件路径即可:
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings.{}'.format(os.getenv('PROENV','dev').lower()))
    
  • 相关阅读:
    CentOS6.5 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/lib/mysqld/mysqld.pid' (Errcode: 2)
    linux防火墙
    Linux磁盘分区与LVM详解
    LVM分区扩展空间
    linux 分区方法(超过2T的硬盘)
    linux异常处理:selinux配置错误导致无法重启
    linux网卡配置文件
    Zabbix4.0系统clone、mass update使用
    Zabbix系统配置日志监控告警--关键字触发
    Zabbix4.0系统配置事件通知
  • 原文地址:https://www.cnblogs.com/pythonwl/p/14955989.html
Copyright © 2020-2023  润新知