Pero ahora Discourse quiere 3.2.1 y asdf parece no saber nada de 3.2.1. ¿Cómo lo estás gestionando?
asdf list all ruby|grep 3.2.1
no devuelve nada.
Dado que tu trabajo incluye la evaluación comparativa de versiones de ruby, eso tiene mucho sentido, pero ¿la gran mayoría de los desarrolladores dentro y fuera de CDCK no solo necesitan un entorno de desarrollo funcional sin necesidad de saber qué bibliotecas se requieren para compilar correctamente imagemagick (o lo que sea)?
¡Pero ahora, estoy muy cerca! Aquí está mi script que extrae Discourse, actualiza Ruby, imagemagick y nodejs, y migra la base de datos.
DISCOURSE_SRC=/home/pfaffman/src/discourse-repos/discourse
DISCOURSE_DOCKER_SRC=/home/pfaffman/src/discourse-repos/discourse_docker
cd $DISCOURSE_SRC
git -C $DISCOURSE_DOCKER_SRC pull https://github.com/discourse/discourse_docker
DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'\"' -f2)
cd -
docker pull $DISCOURSE_BASE
asdf plugin add nodejs #https://github.com/asdf-vm/asdf-nodejs.git
asdf plugin add ruby #https://github.com/asdf-vm/asdf-ruby.git
asdf plugin add imagemagick
asdf plugin update --all
RUBY_VERSION=$(grep -e ^RUBY_VERSION $DISCOURSE_DOCKER_SRC/image/base/install-ruby|cut -d'\"' -f2)
asdf install ruby $RUBY_VERSION
asdf local ruby $RUBY_VERSION
IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~//src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'\"' -f2)
asdf install imagemagick $IMAGE_MAGICK_VERSION
asdf local imagemagick $IMAGE_MAGICK_VERSION
# 2023-04-24 debian y pop!os tienen diferentes versiones de nodejs
NODE_VERSION=$(docker run discourse/base:2.0.20230420-0104 bash -c 'node --version'|cut -d'v' -f2)
asdf install nodejs $NODE_VERSION
asdf local nodejs $NODE_VERSION
cd $DISCOURSE_SRC
git checkout main
git pull
bundle install
./bin/rake db:migrate
RAILS_ENV=test ./bin/rake db:migrate
Creo que está bien mantener redis y postgres manualmente, aunque la próxima vez que haga una instalación del sistema operativo y descubra que mi sistema operativo y Discourse han divergido, ¡probablemente cambiaré de opinión!
No está claro qué es oxipng, pero no creo que una versión incorrecta cause problemas a un desarrollador de plugins. Lo mismo ocurre con jemalloc.
Y, para ser honesto, no estoy seguro de cuántos desarrolladores de plugins se verán afectados por las versiones de imagemagick. Creo que solo Ruby y nodejs son los que probablemente detendrán el proceso.
Podría ser más seguro obtener también las versiones de ruby e imagemagick de la imagen, ya que sospecho que cuando debian tenga la versión requerida de Ruby, ese script desaparecerá, pero ya había escrito esa lógica cuando me enteré de que tenía que extraer la versión de nodo de la imagen base.
Y en el tiempo transcurrido entre que @falco me salvó con asdf plugin update --all y cuando escribí este script, la versión de Ruby saltó a 3.2.2, ¡y mi código la detectó y asdf la instaló! He agregado el código anterior a mi script de actualización, que incluye esto: