如何在 PHP docker 镜像上安装 Yarn 和 npm(symfony 4 项目)

Jam*_*DGE 7 php symfony npm docker yarnpkg

我正在从事 symfony 4/posgresql 项目。我正在使用 docker 工具箱。

我需要在 symfony 上安装 webpack encore 包,但为了做到这一点,我需要将纱线和 npm 添加到我的项目中。有人告诉我我应该在我的 php docker 容器上添加这 2 个安装,但我不知道要添加哪个命令(我是一个 linux/docker 初学者)。

这是我的 docker-compose.yaml :

 
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: {} 

Run Code Online (Sandbox Code Playgroud)

这是我的 Dockerfile :

 
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
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助 !

Jak*_*umi 6

根据https://classic.yarnpkg.com/en/docs/install#debian-stable提供了一些要遵循的命令,将以下内容添加到您的 dockerfile应该可以工作(免责声明:我对 docker 不太熟悉)

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

(-y 删除问题)