
Tengo este Dockerfile que intenta instalar ImageMagick de la siguiente manera:
FROM ruby:2.4-alpine
...
RUN apk --update add imagemagick
...
El punto es que el contenedor no reconoce la file
utilidad (para la detección del tipo de contenido).
Entorno local (Mac OSX, imagemagick instalado con cerveza):
> 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
Contenedor Docker Alpine (se accede al shell mediante 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
También intenté instalarlo imagemagick-dev
solo, y ambos se combinaron sin suerte (no debería hacer una diferencia ya que el primero es una dependencia del segundo, supongo).
La pregunta es,¿Cómo puedo instalar esto en el contenedor Alpine?Creo que me falta algo pero no puedo entenderlo.
Por cierto, no puedo confiar en otra función que no sea file
la detección de tipo de contenido, ya que estoy usando un marco que usa esto explícitamente.
Respuesta1
Aquí hay una pregunta/respuesta similar que me ayudó en stackoverflow:
Instalación de Imagemagick en Docker Alpine.
La utilidad de archivos no forma parte de ImageMagick, es una utilidad estándar. Puedes leer más sobre esto en wikipedia:
Archivo (comando).
En Alpine Linux, puede instalarlo con apk add --no-cache file
. Como se muestra en la siguiente sesión de terminal:
/ # 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
/ #