Linux 노트북에서 개발용 설치를 실행하려고 하고 있습니다.
discourse_docker에서 Ruby, imagemagick, nodejs의 버전을 가져와 asdf로 설정하는 스크립트가 있습니다. 그 중 일부代码如下:
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
하지만 bin/ember-cli를 실행하면 다음과 같은 오류가 발생합니다:
./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은 Discourse에서 사용하는 버전입니다. 왜 개발에는 Discourse가 실행하는 것과 다른 버전이 필요한가요?
18.18.0으로 업데이트한 후 ember-cli를 실행하면 "SyntaxError: Unexpected token in JSON at position 219260"라는 오류가 나는데… 정확히 무슨 의미인지 알 수 없습니다.
이제 무엇을 시도해야 할까요?
개발 환경이 개발에 적합한지 확인할 수 있는 신뢰할 수 있는 방법이 있을까요? 한 달에 한 번 이상은 개발 시스템이 아예 작동하지 않아서 고치느라 1시간 이상을 보내는 것 같습니다. 사람들이(예: @sam, @falco) 실제로 docker 개발 환경을 사용하고 있을까요? 아마 그 컨테이너를 대상으로 Ruby와 Node 버전을 가져오는 것이 좋을까요?