2017-09-26 78 views
3

所以我有這個Dockerfile試圖安裝ImageMagick的方式如下: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殼):

> 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之外的另一個函數來進行內容類型檢測,因爲我正在使用明確使用它的框架。

回答

4

file實用程序不是ImageMagick的一部分。這是一個標準的實用程序。您可以在https://en.wikipedia.org/wiki/File_(command)處閱讀礦石。

在阿爾卑斯山的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 
/#