Ответы пользователя по тегу Docker
  • Как в docker работать с несколькими проектами?

    @andrei_pro
    1. Если проекты разные, то придется разрулить внешними портами 8081:80, 8082:80, если проект один из нескольких сервисов, можно сделать 1 прокси с 80 портом и редиректить на контейнеры с php-fpm
    2. В /etc/hosts добавьте ваши домены на ip 127.0.0.1. Используйте local вместо dev
    Ответ написан
    Комментировать
  • Как правильно организовать разработку на Laravel + Docker?

    @andrei_pro
    Вот как пример docker-compose.yaml в корень проекта с ларой.

    version: '2'
    services:
    
      app:
        build:
          context: ./docker/services/app
          dockerfile: ./Dockerfile
        working_dir: /var/www
        volumes:
          - ./:/var/www
        env_file: ./.env
        depends_on:
          - mysql
        restart: always
    
      routine:
        build:
          context: ./docker/services/routine
          dockerfile: ./Dockerfile
        working_dir: /var/www
        volumes_from:
          - app
        env_file: ./.env
        depends_on:
        - app
        restart: always
    
      web:
        build:
          context: ./docker/services/web
          dockerfile: ./Dockerfile
        working_dir: /var/www
        ports:
          - 80:80
          - 443:443
        restart: always
        volumes_from:
          - app
    
      mysql:
        image: mysql:5.7
        volumes:
          - mysql-db:/var/lib/mysql
        environment:
          - "MYSQL_ROOT_PASSWORD=rootpass"
          - "MYSQL_DATABASE=db"
          - "MYSQL_USER=user"
          - "MYSQL_PASSWORD=pass"
        restart: always
        ports:
          - 3306:3306
    
    volumes:
      mysql-db:
        driver: local


    Дальше нужно создать папки в docker/services и там папки с Dockerfile и конфигом.

    Как пример app в нем композер и нода для билда (это не тру подход, но можно юзать. Нужно все в отдельные контейнеры):
    FROM php:7.1-fpm
    
    RUN apt-get update \
        && apt-get install -y \
            git gnupg ssh cron nano supervisor \
            libmcrypt-dev libfreetype6-dev libjpeg62-turbo-dev libpq-dev \
            libjpeg-dev libpng-dev zlib1g-dev libmagickwand-dev --no-install-recommends \
        && pecl install imagick \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
        && docker-php-ext-enable imagick \
        && docker-php-ext-install gd mcrypt mbstring pdo pdo_mysql pdo_pgsql zip bcmath
    
    RUN cd ~ \
        && curl -sL https://deb.nodesource.com/setup_10.x | bash - \
        && apt-get install -y nodejs \
        && apt-get install -y build-essential
    
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer


    mysql:
    FROM mysql

    И другие контейнеры web там конфиг nginx, routine там имидж от app для выполнения тасков из очереди.
    Ответ написан
    5 комментариев
  • Как настроить docker для работы из под домена на локально машине?

    @andrei_pro
    Добавьте в /etc/hosts:
    127.0.0.1 yourdomain.local

    В докере порт 80 наружу, если ходите открывать yourdomain.local
    ports:
    - "80:80"

    server_name не обязательно если у вас один хост.
    Ответ написан