docker-compose 部署服务

项目结构 

web1
    Dockerfile
    uwsgi.ini
    manage.py
    web1app
web2
    Dockerfile
    uwsgi.ini
    manage.py
    web2app
mysql
    Dockerfile
    all.sql
nginxconf
    web1.conf
    web2.conf
docker-compose.yml

docker-compose.yml 

version: '3'

services:
  db:                             #对应django 数据库连接中的 HOST
    build: ./mysql                #指定mysql的Dockerfile 文件相对位置
    expose:                       #对外暴漏的端口
      - "3333"
    restart: always               #服务宕机之后进行重启
    command: --default-authentication-plugin=mysql_native_password  #安装之后执行的命令
    environment:
      - MYSQL_ROOT_PASSWORD=123456   #数据库 root 用户的密码 对应django 数据库连接中的 PASSWORD
      - MYSQL_DATABASE=test            #数据库 名字 对应django 数据库连接中的 NAME

  web1:
    build: ./web1name           #web1 的Dockerfile文件的相对位置
    command: uwsgi --ini /code/web1name/uwsgi.ini
    working_dir: /code/web1name    #容器中项目的文件路径
    volumes:
      - ./web1name:/code/web1name    #宿主机项目文件 挂在 到容器的项目文件, 方便对项目代码的管理与维护
    expose:
      - "1111"
    depends_on:                 #指定依赖   数据库启动后 服务才启动
      - db

  web2:
    build: ./web2name
    command: uwsgi --ini /code/web2name/uwsgi.ini 
    working_dir: /code/web2name
    volumes:
      - ./web2name:/code/web2name
    expose:
      - "2222"
    depends_on:
      - db

  nginx:
    image: nginx:alpine
    volumes:
      - ./nginxconf:/etc/nginx/conf.d
    ports:
      - "80:80"
    depends_on:
      - web1
      - web2

 

web2-Dockerfile

FROM python:2.7
ENV PYTHONUNBUFFERED=1
RUN mkdir /code
WORKDIR /code
RUN mkdir tmp
RUN mkdir logs
RUN mkdir web2name
COPY requirements.txt /code/web2name     #COPY 如果是文件夹 需要  src   /code/src(写到文件夹那层目录)
RUN pip install -r /code/web2name/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

mysql-Docker

FROM mysql:5.7
ADD ./all.sql /docker-entrypoint-initdb.d #宿主机上的sql 添加到容器的目录下 mysql安装后执行 all.sql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值