如何在 PHP docker 镜像上安装 yarn 和 npm(symfony 4 项目)
Posted
技术标签:
【中文标题】如何在 PHP docker 镜像上安装 yarn 和 npm(symfony 4 项目)【英文标题】:How to install yarn and npm on a PHP docker image (symfony 4 project) 【发布时间】:2020-10-22 19:55:20 【问题描述】:我正在做一个 symfony 4/posgresql 项目。我正在使用 docker 工具箱。
我需要在 symfony 上安装 webpack encore 包,但为了做到这一点,我需要将 yarn 和 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:
这是我的 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
感谢您的帮助!
【问题讨论】:
正如我所说,我不知道 docker 是如何工作的,我也没有时间学习它是如何工作的。我只是寻求一些帮助。进行这个安装很难还是他只需要几行? 我尝试了一些命令,比如 curl -sS dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list 和 apt-get update && apt-get install yarn,但没用。 我不知道从哪里开始,网上有很多信息,但我无法排序。 【参考方案1】:根据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
(-y 删除问题)
【讨论】:
谢谢伙计,这几乎是解决方案。这些命令有效: RUN curl -sS dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - RUN echo "deb dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list RUN apt-get update && apt-get install -y yarn 必须删除所有“sudo”并在第三行将“apt”更改为“apt-get” @JamesSTANDBRIDGE 更新了我的答案以反映您的更改,以便对其他人有所帮助。很高兴它对你有用;o)以上是关于如何在 PHP docker 镜像上安装 yarn 和 npm(symfony 4 项目)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用官方 PHP Docker 镜像方法安装 php-redis 扩展?