Loading

docker-compose释义

version: "3"

services:
  app:
    restart: always   # 除正常工作外,容器会在任何时候重启
    build: .  # 指定当前目录基于Dockerfile构建容器并按app配置启动
    command: bash -c "python3 manage.py collectstatic --no-input && python manage.py makemigrations && python3 manage.py migrate && gunicorn --timeout=30 --workers=4 --bind :8000 dockeruser.wsgi:application"
    volumes:  
      - .:/code  #容器/code文件夹使用宿主机当前目录下的代码
      - static-volume:/code/collected_static  #
    expose:  #暴露容器端口8000
      - "8000"
    depends_on: # 等待db容器启动
      - db
    networks:
      - web_network
      - db_network
  db:
    image: mysql:5.7
    volumes:
      - "./mysql:/var/lib/mysql"
    ports:   # 开放宿主机端口3306给容器3306端口
      - "3306:3306"
    volumes:   # 将宿主机MySQL配置为utf-8并替代容器固定路径下配置
      - ./config/mysql/custom.cnf:/etc/mysql/conf.d/custom.cnf
    restart: always
    environment:  # 设置环境变量配置MySQL用户名密码
      - MYSQL_ROOT_PASSWORD=mypassword
      - MYSQL_DATABASE=django_app
      - LANG=C.UTF-8
    networks:
      - db_network
  nginx:
    restart: always
    image: nginx:latest
    ports:
      - "80:8000"
    volumes:  
      - static-volume:/code/collected_static  # 将Django静态文件挂在给容器
      - ./config/nginx:/etc/nginx/conf.d   # 将宿主机配置覆盖容器配置
    depends_on:  # 等待app启动
      - app
    networks:
      - web_network

networks:
  web_network:
    driver: bridge
  db_network:
    driver: bridge

volumes:
  static-volume:
posted @ 2021-06-21 11:55  封灵寒武  阅读(0)  评论(0)    收藏  举报