したがって、次の方法で ImageMagick をインストールしようとするこの Dockerfile があります。
FROM ruby:2.4-alpine
...
RUN apk --update add imagemagick
...
file
ポイントは、コンテナーがユーティリティ (コンテンツ タイプの検出用) を認識しないことです。
imagemagick
ローカル環境 (Mac OSX、でインストール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
):
> 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
これを明示的に使用するフレームワークを使用しているため、コンテンツ タイプの検出以外の別の関数に依存することはできません。