Docker-compose dev和prod重新创建的容器

时间:2018-03-28 16:41:07

标签: django docker docker-compose

我有django项目。对于这个项目,我有不同的设置(db,...)。我想运行dev和prod容器。我想同时开发dev和prod。 我的结构项目:

enter image description here

我的docker-copose.yml

version: '2.0'
services:
  web:
    build: .
    container_name: api_prod
    volumes:
      - .:/usr/django/app/
    expose:
      - "8000"
    env_file: env/main.env
    command: bash django_run.sh

  nginx:
    build: nginx
    container_name: ng_prod
    ports:
      - "8000:8000"
    volumes:
      - ./nginx/api.conf:/etc/nginx/conf.d/api.conf
      - .:/usr/django/app/
    depends_on:
      - web
    links:
      - web:web

我的docker-compose.dev.yml

version: '2.0'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile.dev
    container_name: api_dev
    volumes:
      - .:/usr/django/app_dev/
    expose:
      - "8001"
    env_file: env/dev.env
    command: bash django_run.sh

  nginx:
    build: nginx
    container_name: ng_dev
    ports:
      - "8001:8001"
    volumes:
      - ./nginx/api.conf:/etc/nginx/conf.d/dev_api.conf
      - .:/usr/django/app_dev/
    depends_on:
      - web
    links:
      - web:web

Dockerfile

FROM python:3

RUN apt-get update

# Install wkhtmltopdf
RUN curl -L#o wk.tar.xz https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz \
    && tar xf wk.tar.xz \
    && cp wkhtmltox/bin/wkhtmltopdf /usr/bin \
    && cp wkhtmltox/bin/wkhtmltoimage /usr/bin \
    && rm wk.tar.xz \
    && rm -r wkhtmltox

RUN apt-get install -y cron

# create directory for application source code
RUN mkdir -p /usr/django/app

COPY requirements.txt /usr/django/app/
COPY django_run.sh /usr/django/app/

WORKDIR /usr/django/app

RUN pip install -r requirements.txt

Dockerfile.dev

FROM python:3

RUN apt-get update

# Install wkhtmltopdf
RUN curl -L#o wk.tar.xz https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz \
    && tar xf wk.tar.xz \
    && cp wkhtmltox/bin/wkhtmltopdf /usr/bin \
    && cp wkhtmltox/bin/wkhtmltoimage /usr/bin \
    && rm wk.tar.xz \
    && rm -r wkhtmltox

RUN apt-get install -y cron

# create directory for application source code
RUN mkdir -p /usr/django/app_dev

COPY requirements.txt /usr/django/app_dev/
COPY django_run.sh /usr/django/app_dev/

WORKDIR /usr/django/app_dev

RUN pip install -r requirements.txt

我为这样的prod命令运行:

docker-compose build
docker-compose up

对于dev我运行如下命令:

docker-compose —file docker-compose.dev.yml build
docker-compose —file docker-compose.dev.yml up

我的问题:我想同时工作和dev和prod容器,但是当我运行我的命令时,更高的prod容器会覆盖dev。我花了很多钱 倍((

0 个答案:

没有答案