historias 2025-04-04
2 minutos de lectura

Gimp

Corriendo en Xquartz (macOS) con Docker

imagen destacada

Hace un tiempo Gimp se rompió para macOS, no os preocupéis, afortunadamente eso fue temporal, sin embargo fue durante bastante tiempo y sin poder emplear Gimp, surgieron ideas para poder ejecutar Gimp usando Docker.

Perdón por no proporcionar fuentes, hace mucho tiempo de esto. Estuve haciendo limpieza del disco duro y de repente di con este directorio donde había un fichero run.sh y un Dockerfile y decidí compartirlos a modo de constancia y truco, por si vuelve a suceder. Sin embargo, aunque esta idea la extraje de otra web, no recuerdo cual.

Voy a ser breve, la idea es tener instalado algún sistema de contenedores en Mac que pueda ejecutar programas GNU/Linux. Digo sistema de contenedores porque actualmente existen varios y aunque Docker es el más famoso, también comienza a tener mala fama por algunas prácticas cuestionables.

Primero, el Dockerfile, si tu sistema es podman u otro y necesitas ajustarlo házmelo saber y actualizo el artículo para hacerlo más genérico o al menos agregar los cambios para otros sistemas.

FROM debian:buster-slim

RUN apt-get update && apt-get install -y \
    gimp \
    --no-install-recommends \
    && rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["gimp"]

Sí, lo sé, buster no es la última estable. Esto lo puedes cambiar como desees, solo que deberás probarlo.

El archivo para ejecutarlo, run.sh:

#!/bin/bash

set -x

Xquartz &
sleep 2
#IP=$(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
IP="172.18.4.6"
echo "IP=$IP"

docker run \
    -it \
    --rm \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e DISPLAY=$IP:0 \
    --net=host \
    -v $HOME/Pictures:/root/Pictures \
    gimp:latest 

En este punto verás que la definición de IP varía mucho. Esto es casi mejor ponerlo a mano, pero si surge una mejor forma de conocer la IP local, puedes cambiar el código.

También verás que se ejecuta en segundo plano Xquartz. Este es un servidor X necesario para ejecutar Gimp en remoto, ya que será este servidor el que se encargue de hacer de interfaz entre lo que se ejecuta en el contenedor y tu macOS.

No te preocupes, se puede instalar fácilmente con Homebrew con tan solo ejecutar:

brew install xquartz

Eso es todo. Espero que ayude si no es con Gimp quizás para poder ejecutar cualquier aplicación de GNU/Linux en tu macOS, cualquier cosa hazme saber.

Manuel Rubio

Manuel Rubio

Programación Concurrente & Erlanger