我有一个Dockerfile文件,尝试按照以下方式安装ImageMagick:
FROM ruby:2.4-alpine
...
RUN apk --update add imagemagick
...
问题在于容器无法识别文件实用程序(用于内容类型检测)file
。
本地环境(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 exec -it CONTAINER_ID
命令访问的Docker Alpine容器:
> 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
,以及两者结合在一起,但都没有成功(我想这应该没有影响,因为前者是后者的依赖项)。
问题是:我该如何在Alpine容器中安装它? 我觉得我错过了什么,但找不出来。
顺便说一下,由于我正在使用一个明确使用此函数的框架,所以我不能依赖于除file
之外的其他内容类型检测功能。