Docker Alpine中的ImageMagick安装

所以我有这个Dockerfile,试图按照以下方式安装ImageMagick:

FROM ruby:2.4-alpine ... RUN apk --update add imagemagick ... 

重点是容器不识别file实用程序(用于内容types检测)。

本地环境(Mac OSX,装有brew的imagemagick):

 > file --version file-5.25 magic file from /usr/share/file/magic > convert --version Version: ImageMagick 6.9.9-5 Q16 x86_64 2017-08-03 http://www.imagemagick.org Copyright: © 1999-2017 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: Cipher DPC Modules Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib 

Docker Alpine容器(使用docker exec -it CONTAINER_ID访问shell):

 > file --version sh: file: not found > convert --version Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-10-21 http://www.imagemagick.org Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: Cipher Modules Delegates (built-in): fontconfig freetype gslib jng jpeg lcms ltdl png ps tiff webp zlib 

也尝试着自己安装imagemagick-dev ,两者都没有任何运气的组合(不应该有所作为,因为第一个是后者的依赖,我猜)。

问题是, 我怎样才能安装在阿尔派容器? 我想我错过了一些东西,但无法弄清楚。

顺便说一下,我不能依赖除file之外的另一个函数来进行内容types检测,因为我使用明确使用这个的框架。

file实用程序不是ImageMagick的一部分。 这是一个标准的实用程序。 您可以通过https://en.wikipedia.org/wiki/File_(command)阅读相关内容。

在Alpine Linux上,你可以用apk add --no-cache file来安装它:

 / # file /etc/group /bin/sh: file: not found / # apk add --no-cache file fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/community/x86_64/APKINDEX.tar.gz (1/2) Installing libmagic (5.32-r0) (2/2) Installing file (5.32-r0) Executing busybox-1.26.2-r5.trigger OK: 9 MiB in 13 packages / # file /etc/group /etc/group: ASCII text / #