Zrychlení Dockeru s PHP

Zrychlení Dockeru s PHP
« kdy: 16. 07. 2017, 22:14:06 »
Ahoj, dá se nějak zrychlit běh PHP aplikace v Dockeru na pc prosím? Ve Vagrantu mi vše běželo mnohem rychleji - hostitel windows, host Linux přes NFS. Teď chci rozjet vývoj v dockeru pod nativním windows a zaskočila mě mnohem vyšší php execute time

Díky za pomoc.
« Poslední změna: 17. 07. 2017, 20:33:18 od Roman Bořánek »


Re:zrychlení Dockeru s PHP
« Odpověď #1 kdy: 16. 07. 2017, 23:25:11 »
Nevim jak na widlich, asi pred 10lety jsem nastesti utekl, ale na Macu jsme to resili dost a reseni bylo tady: https://docs.docker.com/docker-for-mac/osxfs-caching/
Děkuji za možnost editace příspěvku.

srigi

Re:zrychlení Dockeru s PHP
« Odpověď #2 kdy: 17. 07. 2017, 06:48:47 »
Ano da a celkom jednoducho. Zakladny problem je, ze pravdepodobne pouzivas volume na celu appku. To co sposobuje spomalenie, ze v tom volume je zahrnuty aj adresar vendor s tisicami malych suborov.

Jednoducho presun vendor o uroven vyssie, tak aby nebol vo volume. Vznikne drobna komplikacia - prikaz composer install teraz musis spustit v kontajneri, vzdy ked pridas/odoberes/updatujes nejaku libku. Za desat-nasobne zrychlenie ro ale stoji.

Re:zrychlení Dockeru s PHP
« Odpověď #3 kdy: 17. 07. 2017, 13:50:38 »
Ano, používám volume na celý projekt viz docker-compose.yml:
Kód: [Vybrat]
version: '2'

services:
  apache:
    image: dockette/devstack:apache

    networks:
      default:
        ipv4_address: 172.10.10.5

    volumes_from:
      - data

    ports:
      - 80:80
      - 443:443

    links:
      - php7:php
      - php7:php7
      - php56:php56

  php7:
    image: dockette/devstack:php71-fpm

    networks:
      default:
        ipv4_address: 172.10.10.10

    environment:
      - SSH_AUTH_SOCK=/ssh-agent

    volumes_from:
      - data
      - userdirs

    links:
      - mariadb:mysql
      - postgresql:postgresql

  php56:
    image: dockette/devstack:php56-fpm

    networks:
      default:
        ipv4_address: 172.10.10.11

    environment:
      - SSH_AUTH_SOCK=/ssh-agent

    volumes_from:
      - data
      - userdirs

    links:
      - mariadb:mysql
      - postgresql:postgresql

  nodejs:
    image: dockette/devstack:nodejs

    networks:
      default:
        ipv4_address: 172.10.10.12

    # Keep this service alive
    tty: true
    stdin_open: true

    environment:
      - SSH_AUTH_SOCK=/ssh-agent

    volumes_from:
      - data
      - userdirs

    links:
      - mariadb:mysql
      - postgresql:postgresql

  adminer:
    image: dockette/adminer:dg

    networks:
      default:
        ipv4_address: 172.10.10.13

    ports:
      - 8000

    links:
      - mariadb:mysql
      - postgresql:postgresql

  mariadb:
    image: mariadb:10.1

    networks:
      default:
        ipv4_address: 172.10.10.20

    ports:
      - 3306:3306

    volumes:
      - ./data/mariadb:/var/lib/mysql

    environment:
      # Change in your devstack!
      - MYSQL_ROOT_PASSWORD=root

  postgresql:
    image: postgres:9.6

    networks:
      default:
        ipv4_address: 172.10.10.21

    ports:
      - 5432:5432

    volumes:
      - ./data/postgres:/var/lib/postgresql/data

    environment:
      # Change in your devstack!
      - POSTGRES_PASSWORD=root

  data:
    image: busybox

    volumes:
      # Data homeland
       - ~/projects:/srv

  userdirs:
    image: busybox

    volumes:
      # It's root's home folder.
      # You can store here .npm, .composer cache etc.
      - ./data/root-dir:/root
      # It's dfx's home folder.
      # You can store here .npm, .composer cache etc.
      - ./data/petr-dir:/home/petr
      # Propagate SSH agent to containers
      - $SSH_AUTH_SOCK:/ssh-agent

networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
      # This is useful for PHP xdebug debugging
      - subnet: 172.10.10.0/24
        gateway: 172.10.10.1

S Dockerem začínám. Jak mám vyndat složku vendor z volume prosím? Používám Nette FW.
« Poslední změna: 17. 07. 2017, 13:53:00 od petr.parolek »

Martin

Re:zrychlení Dockeru s PHP
« Odpověď #4 kdy: 17. 07. 2017, 17:35:53 »
+ pouzi host network, bridge je notoricky pomaly kedze je to routovanie v user space


Re:Zrychlení Dockeru s PHP
« Odpověď #5 kdy: 18. 07. 2017, 17:46:25 »
díky.