0

Have symfony 6.0 project with docker and it's lagging a lot of, as I know it is because of my new macbook pro with m1 chip. Before I used ubuntu, and everything was just fine. Now using arm64v8 images but still got a lot of lagging.

docker configuration is below: I have Symfony 6.0 project on macbook pro with m1 pro chip i have docker configuration like this: docker-compose.yml:

version: '3'
services:
    php:
        build: ./docker/php
        container_name: {PROJECT_NAME}_php
        environment:
            TZ: Europe/Vilnius
        volumes:
            - ./docker/php/config/www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
            - ./docker/php/config/php.ini:/usr/local/etc/php/php.ini:ro
    web:
        build: ./docker/web
        environment:
            APP_PROJECT_DIR: {PATH_TO_PROJECT}
        volumes:
            - ./docker/web/config:/etc/nginx/config:ro
            - ./docker/web/nginx.conf:/etc/nginx/nginx.conf:ro
    mysql:
        image: arm64v8/mariadb:10.6.4
        build: ./docker/mysql

docker-compose.override.yml:

version: '3'
services:
    php:
        hostname: {USER_NAME}-{PROJECT_NAME}-php
        working_dir: {PATH_TO_PROJECT}
        volumes:
            - {PATH_TO_PROJECT}:{PATH_TO_PROJECT}
            - ./docker/php/composer/:/var/www/.composer/
            - ./docker/php/composer/auth.json:/var/www/.composer/auth.json
            - {PATH_TO_PROJECT}/node_modules
    web:
        environment:
            APP_PROJECT_DIR: {PATH_TO_PROJECT}
            APP_HOST: {PROJECT_HOST}
        extra_hosts:
            - "{PROJECT_HOST}:host-gateway"
        volumes:
            - {PATH_TO_PROJECT}:{PATH_TO_PROJECT}/public
        networks:
            default:
                ipv4_address: 172.12.16.10
        ports:
            -  98:80
        depends_on:
            - php
            - mysql
    mysql:
        image: arm64v8/mariadb:10.6.4
        ports:
            - 4306:3306
        expose:
            - 3306
        environment:
            MYSQL_ROOT_PASSWORD: qwerty
        networks:
            default:
                ipv4_address: 172.12.16.30

networks:
    default:
        name: {PROJECT_NAME}
        driver: bridge
        ipam:
            driver: default
            config:
                -   subnet: 172.12.16.0/24

php Dockerfile:

FROM arm64v8/php:8.0-fpm

USER root

# change user and groups ids
RUN usermod --uid=1000 www-data && \
    groupmod --gid=1000 www-data && \
    # fix permissions
    chown -R www-data:www-data /var/www/

# enable extensions
RUN echo 'START' && \
    docker-php-ext-install mysqli && \
    docker-php-ext-install bcmath && \
    docker-php-ext-install pdo_mysql && \
    docker-php-ext-enable opcache && \
    docker-php-source delete

RUN docker-php-ext-configure pcntl --enable-pcntl
RUN docker-php-ext-install pcntl

RUN apt-get update && \
    apt-get install -y libzip-dev && \
    docker-php-ext-install zip && \
    apt-get install -y libxml2-dev && \
    docker-php-ext-install soap && \
    apt-get install -y libicu-dev && \
    docker-php-ext-install intl && \
    apt-get install -y libgmp-dev && \
    docker-php-ext-install gmp && \
    apt-get install -y libcurl4 libcurl4-openssl-dev && \
    docker-php-ext-install -j$(nproc) curl && \
    apt-get install -y libpq-dev && \
    docker-php-ext-install pdo_pgsql && \
    apt-get install -y libpng-dev libfreetype6-dev libjpeg62-turbo-dev && \
    docker-php-ext-install gd && \
    rm -r /var/lib/apt/lists/* && \
    docker-php-source delete

RUN apt-get update && \
    apt-get install -y git zip gnupg && \
    rm -r /var/lib/apt/lists/* && \
    docker-php-source delete

RUN apt-get update && \
    apt-get install -y wget && \
    rm -r /var/lib/apt/lists/* && \
    docker-php-source delete

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list  && \
    apt update && apt install -y yarn  && \
    rm -r /var/lib/apt/lists/* && \
    docker-php-source delete

RUN apt update && apt install -y libxrender1 && apt install -y libfontconfig1 && apt install -y libfontconfig

RUN apt install -y wget fontconfig fontconfig-config xfonts-75dpi xfonts-base

RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_arm64.deb
RUN dpkg -i wkhtmltox_0.12.6-1.buster_arm64.deb

ADD ./includes/install-composer.sh /usr/bin
RUN /usr/bin/install-composer.sh && \
    mv composer.phar /usr/bin/composer

RUN apt-get update && \
    ## zip
    apt-get install -y iputils-ping && \
    ## cleanup
    rm -r /var/lib/apt/lists/* && \
    docker-php-source delete

USER www-data

mysql Dockerfile:

FROM arm64v8/mariadb:10.6.4

COPY ./config/my.cnf /etc/mysql/conf.d/my.cnf

ENV TZ=Europe/Vilnius

web Dockerfile:

FROM nginx:1.11.0-alpine

COPY docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]

Any suggestions to make it less lagging?

Scorpioniz
  • 1,421
  • 3
  • 16
  • 36
  • It looks like you're bind-mounting your entire application into the container; are you hitting the problem where [Docker in MacOs is very slow](https://stackoverflow.com/questions/55951014/docker-in-macos-is-very-slow)? Can you use Homebrew to `brew install php@8.0` to set up a local, non-Docker development environment? – David Maze Feb 06 '23 at 12:09

0 Answers0