Как разделить Centos, Python, Apache и MySQL на разные контейнеры с помощью Docker - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь создать среду разработки Centos + Python (Django) + Apache + MySQL, используя docker.В настоящее время я устанавливаю Python и Apache на Centos и запускаю контейнеры одновременно с MySQL.

■ docker-compose.yml

version: '3'
services:
  web:
    build: ./web
    restart: always
    volumes:
      - ./html/:/var/www/html/
    links:
      - mysql
    expose:
      - "8000"
    ports:
      - "8000:8000"
    privileged: true

  mysql:
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: test
      MYSQL_PASSWORD: test_pass
      MYSQL_DATABASE: django
    volumes:
      - ./storage:/var/lib/mysql

■ Dockerfile

FROM centos:centos7

RUN yum -y update && \
    yum install -y https://centos7.iuscommunity.org/ius-release.rpm && \
    yum install -y vim python36u python36u-libs python36u-devel python36u-pip httpd httpd-devel gcc && \
    yum clean all && \
    rm -rf /usr/bin/python && \
    ln -s /usr/bin/python3.6 /usr/bin/python && \
    ln -s /usr/bin/pip3.6 /bin/pip && \
    pip install --upgrade pip

COPY ./requirements.txt /var/www/html/requirements.txt
COPY ./django.conf /etc/httpd/conf.d/django.conf
WORKDIR /var/www/html
RUN pip install -r requirements.txt

ENTRYPOINT ["/usr/sbin/httpd", "-D", "FOREGROUND"]

С этого момента я хотел бы легко изменить Apache на nginx и изменить версию Python.Поэтому я хочу разделить Apache и Python на CentOS на контейнеры.Могу ли я разделить контейнеры следующим образом?

■ docker-compose.yml

  version: '3'
  services:
    os:
      image: centos:centos7
      restart: always
      depends_on:
        - web

    web:
      image: centos/nginx-18-centos7
      restart: always
      ports:
        - "8082:80"
      depends_on:
        - db
        - app

    app:
      build: centos/python-36-centos7
      restart: always

    db:
      image: mysql:8.0
      restart: always
      ports:
        - "3306:3306"
      environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_USER: test
        MYSQL_PASSWORD: test_pass
        MYSQL_DATABASE: django
      volumes:
        - ./storage:/var/lib/mysql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...