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

     2023-02-16     49

关键词:

【中文标题】如何在 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)

在 Docker 文件上安装 yarn global

】在Docker文件上安装yarnglobal【英文标题】:InstallyarnglobalonDockerfile【发布时间】:2021-04-2802:42:29【问题描述】:我正在尝试获取由yarn和docker映像识别的全局包。FROMruby:2.7.2RUNapt-getupdate-qq&&apt-getinstall-ynodejslibvips-toolsyarn#Instal... 查看详情

如何更改docker镜像安装目录?

】如何更改docker镜像安装目录?【英文标题】:Howtochangethedockerimageinstallationdirectory?【发布时间】:2014-08-1003:56:30【问题描述】:据我所知,docker镜像在被拉取时会安装到/var/lib/docker。有没有办法改变这个位置,比如像/mnt这样的... 查看详情

使用 Yarn 2 (Berry) 在 Docker 镜像中打包应用程序

】使用Yarn2(Berry)在Docker镜像中打包应用程序【英文标题】:UsingYarn2(Berry)forpackagingapplicationinaDockerimage【发布时间】:2021-10-2707:17:27【问题描述】:我正在将VueJS应用程序从“经典”Yarn1.x迁移到Yarn2。遵循installdocumentation很简单,... 查看详情

docker与yarn

有时我们的项目是使用yarn去发布的,当需要使用docker发布这个项目时,安装yarn是必须的,但是平时使用的npminstall-gyarn此时却不可用从网站上找到解决的方法地址:#使用基础镜像Fromnode:boron#创建人MAINTAINER[email protected]#创建... 查看详情

如何使用官方 PHP Docker 镜像方法安装 php-redis 扩展?

】如何使用官方PHPDocker镜像方法安装php-redis扩展?【英文标题】:Howtoinstallphp-redisextensionusingtheofficialPHPDockerimageapproach?【发布时间】:2015-09-3022:05:30【问题描述】:我想基于officialPHPDockerimage构建我的带有php-redis扩展的PHP-FPM映像... 查看详情

在 docker 容器内安装依赖项后如何复制回主机 package-lock.json/yarn.lock?

】在docker容器内安装依赖项后如何复制回主机package-lock.json/yarn.lock?【英文标题】:Howtocopybacktohostpackage-lock.json/yarn.lockafterinstalldependenciesinsidedockercontainer?【发布时间】:2021-04-1720:59:19【问题描述】:我正在使用Docker容器来运行... 查看详情

创建使用 yarn 链接的项目的 docker 镜像

】创建使用yarn链接的项目的docker镜像【英文标题】:Createdockerimageofprojectthatusesyarnlink【发布时间】:2021-11-1501:04:52【问题描述】:在我的NextJS项目中,我使用yarn作为包管理器,并决定使用yarnlink来导入别名/绝对导入。这是yarn的... 查看详情

如何在 docker php 官方镜像实例中添加 Zend Guard Loader 支持?

】如何在dockerphp官方镜像实例中添加ZendGuardLoader支持?【英文标题】:HowtoaddZendGuardLoadersupportindockerphpofficialimageinstance?【发布时间】:2016-07-2717:28:48【问题描述】:我想在我的php实例上添加ZendGuardLoader支持。http://www.zend.com/en/prod... 查看详情

如何在 Docker 上安装 mcrypt

】如何在Docker上安装mcrypt【英文标题】:HowtoinstallmcryptonDocker【发布时间】:2018-04-2105:43:10【问题描述】:我有一个带有Phalcon3和php7的Docker容器。我正在尝试安装php扩展Mcrypt,但没有运气。如果我对容器执行ssh并执行:apt-getupdate... 查看详情

在 pypy3 docker 镜像上安装 psycopg2

】在pypy3docker镜像上安装psycopg2【英文标题】:Installpsycopg2onpypy3dockerimage【发布时间】:2021-11-2307:55:18【问题描述】:我非常努力地在pypy3dockerimagehttps://hub.docker.com/_/pypy上安装psycopg2事实证明这是不可能的......FROMpypy:3WORKDIR/COPY..RUN... 查看详情

如何修改windows上docker的镜像源

参考技术A请将xxx替换为您在DaoCloud上注册后,为您专属生成的Mirror地址链接名。该脚本可以将--registry-mirror加入到您的Docker配置文件/etc/defaults/docker中下载官方Ubuntu镜像dockerpullubuntuCentOS:安装或升级DockerDocker1.3.2版本以上才支持Dock... 查看详情

如何在docker窗口中部署php开发环境

...比以前更加简单方便了,这里以PHP开发作为例子讲解Docker如何布置开发环境。一般来说,一个PHP项目会需要以下工具:Web服务器:Nginx/TengineWeb程序:PHP-FPM数据库:MySQL/PostgreSQL缓存服务:Redis/Memcache这是最简单的架构方式,在Docker发展... 查看详情

如何在docker下安装elasticsearch(上)(代码片段)

一环境VMware®Workstation15Pro  centos7(1810)   docker19.03.1二进入centos7启动dcokersystemctlstartdocker三打开docker官方仓库,搜索elasticsearch以查看需要下载的版本,拉取镜像的时候,官方推荐要指定版本号,目前最新7.3.0http... 查看详情

如何在centos7上安装docker

具体安装步骤:1.yuminstalldocker-io,yum安装docker,需要要root权限2.systemctlstartdocker.service,启动docker3.systemctlstatusdocker.service,查看docker的状态4.chkconfigdocker.service,添加开机启动项5.dockerpullcentos:latest,获取centos镜像,下载的时间和网络... 查看详情

如何修改windows上docker的镜像源

参考技术A安装或升级DockerDocker1.3.2版本以上才支持DockerHubMirror机制,如果您还没有安装Docker或者版本过低,请安装或升级版本配置DockerHubMirrorsudoecho"DOCKER_OPTS=\"$DOCKER_OPTS--registry-mirror=http://xxx.m.daocloud.io\"">&g... 查看详情

在 docker 镜像上硬编码包版本

】在docker镜像上硬编码包版本【英文标题】:Hardcodingpackagesversionsondockerimage【发布时间】:2021-04-1512:43:58【问题描述】:是否有一种已知的方法来跟踪docker映像上已安装软件包的版本?我安装了一些示例包FROMdocker.io/debian:bullseyeR... 查看详情

docker:理解docker镜像与容器

...。相当于把自己的项目代码复制一份到Docker系统里。二、如何解决项目运行时所需的生产环境  问题很快产生,在Linux中已经安装好的运行环境。使得我们项目可以正常运行,但是去到一个新系统中。项目那些生产环境岂不是... 查看详情

如何使用docker部署容器

...好处之一。它们使开发和部署周期变得异常高效。但是你如何部署这些容器?我想在这里指导你完成这个过程。我们将专注于在UbuntuServer18.04上部署基本的NGINXWeb服务器作为容器。所有这一切都将在Docker的帮助下完成。为了成功... 查看详情