Ich versuche, meine Entwicklungsinstallation auf meinem Linux-Laptop auszuführen.
Ich habe ein Skript, das die Versionen für Ruby, imagemagick und nodejs von discourse_docker abruft und sie mit asdf festlegt. Hier ist ein Teil davon:
RUBY_VERSION=$(grep "^ARG RUBY_VERSION" $DISCOURSE_DOCKER_SRC/image/base/slim.Dockerfile |cut -d'=' -f2)
echo "GOT RUBY VERSION!! $RUBY_VERSION"
asdf install ruby $RUBY_VERSION
asdf global ruby $RUBY_VERSION
IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~/src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'"' -f2)
echo "GOT IMAGE_MAGICK_VERSION: $IMAGE_MAGICK_VERSION"
asdf install imagemagick $IMAGE_MAGICK_VERSION
asdf global imagemagick $IMAGE_MAGICK_VERSION
# 2023-04-24 debian and pop!os have different nodejs versions
NODE_VERSION=$(docker run discourse/base:release bash -c 'node --version'|cut -d'v' -f2)
#NODE_VERSION=$(grep node ~/src/discourse-repos/discourse/.tool-versions|awk '{print $2}')
echo "GOT NODEJS version: $NODE_VERSION"
asdf install nodejs $NODE_VERSION
asdf global nodejs $NODE_VERSION
Aber wenn ich bin/ember-cli ausführe, erhalte ich Folgendes:
./bin/ember-cli
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
error ember-template-lint@6.0.0: The engine "node" is incompatible with this module. Expected version "^18.18.0 || ^20.9.0 || >=21.1.0". Got "18.17.1"
error Found incompatible module.
18.17.1 ist die Version in Discourse. Warum brauche ich eine andere Version für die Entwicklung als die, die Discourse ausführt?
Wenn ich auf 18.18.0 aktualisiere und dann ember-cli ausführe, erhalte ich einen „SyntaxError: Unexpected token in JSON at position 219260“. . . etwas, das ich nicht ganz verstehen kann.
Was soll ich jetzt versuchen?
Gibt es eine zuverlässige Möglichkeit zu sehen, ob meine Entwicklungsumgebung für die Entwicklung geeignet ist? Es scheint, dass ich einmal im Monat eine Stunde oder länger damit verbringe, mein Entwicklungssystem überhaupt zum Laufen zu bringen. Nutzen Leute (wie @sam und @falco) wirklich die Docker-Entwicklungsumgebung? Vielleicht sollte ich diesen Container anvisieren, um Versionen von Ruby und Node zu erhalten?