ImageMagick-Installation in Docker Alpine

ImageMagick-Installation in Docker Alpine

Ich habe also dieses Dockerfile, das versucht, ImageMagick auf folgende Weise zu installieren:

FROM ruby:2.4-alpine

...

RUN apk --update add imagemagick

...

fileDer Punkt ist, dass der Container das Dienstprogramm (zur Inhaltstyperkennung) nicht erkennt .

Lokale Umgebung (Mac OSX, Imagemagick mit Brew installiert):

> 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-Container (Zugriff auf die Shell über 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

Habe auch versucht, imagemagick-deves einzeln zu installieren, und die Kombination aus beiden funktionierte ohne Erfolg (sollte keinen Unterschied machen, da das Erste von dem Letzteren abhängig ist, denke ich).

Die Frage ist,wie kann ich das im Alpine-Container installieren?Ich glaube, ich übersehe etwas, komme aber nicht dahinter.

Übrigens kann ich mich außer fileauf die Inhaltstyperkennung nicht auf eine andere Funktion verlassen, da ich ein Framework verwende, das dies explizit nutzt.

Antwort1

Hier ist eine ähnliche Frage/Antwort, die mir bei Stackoverflow geholfen hat:
ImageMagick-Installation in Docker Alpine

Das Dateidienstprogramm ist nicht Teil von ImageMagick, sondern ein Standarddienstprogramm. Weitere Informationen dazu finden Sie auf Wikipedia:
Datei (Befehl).

Unter Alpine Linux können Sie es mit installieren apk add --no-cache file. Wie in der folgenden Terminalsitzung gezeigt:

/ # 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
/ #

verwandte Informationen