【发布时间】:2017-09-26 00:01:07
【问题描述】:
所以我有这个 Dockerfile 尝试通过以下方式安装 ImageMagick:
FROM ruby:2.4-alpine
...
RUN apk --update add imagemagick
...
关键是容器无法识别file 实用程序(用于内容类型检测)。
本地环境(Mac OSX,安装imagemagick 和brew):
> 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,并且它们都没有任何运气结合在一起(应该没有什么不同,因为第一个是后者的依赖项,我猜)。
问题是,如何在 Alpine 容器中安装它?我想我遗漏了一些东西,但无法弄清楚。
顺便说一句,我不能依赖 file 以外的其他函数进行内容类型检测,因为我正在使用一个明确使用它的框架。
【问题讨论】:
标签: docker imagemagick paperclip alpine paperclip-validation