web-dev-qa-db-ja.com

DockerAlpineでのImageMagickのインストール

だから私は次の方法でImageMagickをインストールしようとするこのDockerfileを持っています:

FROM Ruby:2.4-Alpine

...

RUN apk --update add imagemagick

...

重要なのは、コンテナがfileユーティリティ(コンテンツタイプの検出用)を認識しないということです。

ローカル環境(Mac OSX、imagemagickbrewをインストール):

> 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を使用してシェルにアクセス):

> 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
Fdo

fileユーティリティはImageMagickの一部ではありません。これは標準のユーティリティです。あなたはウィキペディアでそれについての鉱石を読むことができます:
ファイル(コマンド)

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
/ # 
8
Andy Shinn