Docker PHP图像助手并构build依赖关系

这个指令来自于官方的docker php镜像的描述:

RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ && docker-php-ext-install -j$(nproc) iconv mcrypt \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd 

我有两个问题:

  1. 什么是带有-dev后缀的软件包? 我怎么知道我需要他们,特别是哪些?
  2. 什么是-j$(nproc)

  1. 带有-dev后缀的软件包是不同库的开发文件。 这些可能需要build立一个或多个PHP扩展。 例如,Googleing for libjpeg62-turbo-dev显示它是“libjpeg-turbo库的开发文件”。 PHP将使用它的一些image processing函数库: http : //php.net/manual/en/image.installation.php 。 你应该保留他们,如果你想要的function,要求他们正常工作。 除非你真的想为小尺寸或者其他东西进行优化,否则我会把它们全部留下。

  2. -j$(nproc)要求它根据可用处理器的数量并行安装扩展。

-dev表示该软件包包含headerslibraries ,您可以使用它们链接,然后在另一个应用程序或库中进行编译,在这种情况下,它将使用mcryptgd使用freetypejpeg62-turbopng12作为iconv

-j$(nproc)命令让安装程序知道在构build周期中有多less处理器可用。