Partage
  • Partager sur Facebook
  • Partager sur Twitter

Docker/Symfony 4

Installer Yarn et NPM sur l'image PHP

    2 juillet 2020 à 10:29:07

    Bonjour à tous, 

    Je travaille en ce moment sur une application web sous symfony 4, et postgresql. Je travaille aussi pour la toute premiere fois avec Docker, c'est une totale découverte pour moi.

    Un développeur senior m'avait fait une installation symfony propre avec toute les images docker (3 conteneur, un pour pgadmin, un pour la base de donnée et un pour php. 

    Je suis au début du projet, et je me rends compte que je dois installer webpack encore bundle sous symfony. Cependant celui ci necessite l'installation de yarn et npm au préalable sur mon projet. 

    Le développeur senior n'a pas le temps de me faire cette installation (il etait venu en freelance), il m'a juste conseiller d'ajouter ces installations sur l'image docker de php. Cependant je n'ai aucune idée des commandes a realisés pour se faire. Pouvez vous m'aider ? 

    (ps : je suis sur windows, du coup j'utilise docker toolbox et une vm oracle).

    Voici ma configuration docker actuelle : 

    docker-compose.yaml :

    version: '3.7'
    
    services:
      database:
        image: postgres:11-alpine
        ports:
            - "5432:5432"
        volumes:
          - 'boeki_database:/var/lib/postgresql/data'
        environment:
          POSTGRES_PASSWORD: root
    
      database_pg_admin:
        image: dpage/pgadmin4
        ports:
            - "8001:80"
        environment:
          PGADMIN_DEFAULT_EMAIL: root@root.com
          PGADMIN_DEFAULT_PASSWORD: root
          
      application:
        build:
          context: .
          dockerfile: ./docker/Dockerfile
        working_dir: /var/www/project
        ports:
            - "8000:80"
        volumes:
          - ./:/var/www/project:rw,cached
          - ./docker/http/000-default.conf:/etc/apache2/sites-enabled/000-default.conf:rw,cached
    
    volumes:
      boeki_database: {}
    

    Mon Dockerfile : 

    FROM php:7.4-apache
    
    RUN apt-get update && \
        apt-get install -y libpq-dev g++ zlib1g-dev libicu-dev vim git zip
    
    #GD
    RUN apt-get update && \
      DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
      libfreetype6-dev \
      libjpeg62-turbo-dev \
      libpng-dev \
      libzip-dev \
      poppler-utils
    
    RUN rm -rf /var/lib/apt/lists/*
    RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \
      docker-php-ext-install -j "$(nproc)" gd pdo_pgsql
    
    RUN docker-php-ext-configure intl
    RUN docker-php-ext-install pdo pdo_mysql intl zip opcache
    
    RUN pecl install redis && echo "extension=redis.so" > /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
    
    RUN a2enmod rewrite
    
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
    

    Merci :D



    • Partager sur Facebook
    • Partager sur Twitter
      2 juillet 2020 à 12:49:58

      Salut,

      il faut que tu te connectes sur le conteneur docker PHP pour faire l'installation, une fois connexté, tu gères ça comme une machine linux.

      https://www.jbnet.fr/systeme/docker/docker-les-commandes-utiles.html

      Cherche run

      sinon tu as de bon tuto sur comment gérer un conteneur, n'oublie pas de sauver le conteneur, car si tu l'éteint, la modification sera "oubliée" tout est marqué.

      • Partager sur Facebook
      • Partager sur Twitter
        2 juillet 2020 à 14:19:07

        christouphe a écrit:

        Salut,

        il faut que tu te connectes sur le conteneur docker PHP pour faire l'installation, une fois connexté, tu gères ça comme une machine linux.

        https://www.jbnet.fr/systeme/docker/docker-les-commandes-utiles.html

        Cherche run

        sinon tu as de bon tuto sur comment gérer un conteneur, n'oublie pas de sauver le conteneur, car si tu l'éteint, la modification sera "oubliée" tout est marqué.

        Salut, 

        Je vais tenter ca avec ces commandes :

        RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
        RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
        RUN sudo apt update && sudo apt install -y yarn

        Merci !


        • Partager sur Facebook
        • Partager sur Twitter
          2 juillet 2020 à 15:15:14

          Si tu allais apprendre comment utiliser Docker, ce serait un investissement, car en faisant au pif, tu risques de te tuer les conteneurs, et ne compte pas sur nous pour les remonter pour toi ;)
          • Partager sur Facebook
          • Partager sur Twitter
            2 juillet 2020 à 17:05:27

            christouphe a écrit:

            Si tu allais apprendre comment utiliser Docker, ce serait un investissement, car en faisant au pif, tu risques de te tuer les conteneurs, et ne compte pas sur nous pour les remonter pour toi ;)


            Je sais bien que c'est préférable, mais j'ai malheureusement pas le temps pour l'instant. Je suis sur un projet professionnel, et je dois finir de développer certains points afin de respecter le timing. Quand ca sera fait, je me formerai sur docker (oui la logique n'est pas la bonne mais pas le choix).

            Je tente au pif, mais de toute facon j'ai sauvegardé mon projet sur git, si ca detruit mes conteneurs, je fais un back up et c'est reglé. Je sais evidemment comment faire un docker-compose up -d et docker-compose exec application composer install --dev !

            J'ai pas encore eu le temps de tester l'installation, je vais faire ca maintenant.

            Merci pour les conseils en tout cas 

            -
            Edité par JamesStandbridge 2 juillet 2020 à 17:06:15

            • Partager sur Facebook
            • Partager sur Twitter

            Docker/Symfony 4

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown