再開:最新の状態に保つ開発環境

しかし、Discourseは3.2.1を要求しており、asdfは3.2.1を知らないようです。皆さんはどのように管理していますか?

asdf list all ruby|grep 3.2.1

は何も返しません。

Rubyのバージョンベンチマークを行うというあなたの仕事には、それは非常に理にかなっていますが、CDCK内外の大多数の開発者は、imagemagick(または他のもの)を正しくコンパイルするために必要なライブラリを知る必要なしに、動作する開発環境を必要としているだけではないでしょうか?

ruby-buildには確かに3.2.1があるので、あなたの方で何か更新が必要なようです。

「いいね!」 4

@pfaffman さんは asdf plugin update --all を実行し忘れたのではないでしょうか?

「いいね!」 2

しまった!少なくとも試したつもりだったのですが、

asdf plugin update ruby

しかし、それもしていなかったようです。:crying_cat_face: :person_shrugging:

でも、もうすぐです!Discourseの取得、Ruby、imagemagick、nodejsの更新、データベースの移行を行うスクリプトは以下の通りです。

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 and pop!os have different nodejs versions
  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

redisとpostgresは手動で最新の状態に保つのは問題ないと思いますが、次回OSをインストールしてOSとDiscourseが乖離していることに気づいたときは、考えを変える可能性が高いです!

oxipngが何であるかは不明ですが、間違ったバージョンがプラグイン開発者に問題を引き起こす可能性は低いと思います。jemallocについても同様です。

また、imagemagickのバージョンによって影響を受けるプラグイン開発者がどれだけいるかもわかりません。Rubyとnodejsだけが問題を引き起こす可能性が高いと思います。

Rubyとimagemagickのバージョンもイメージから取得する方が安全かもしれません。Debianに必要なRubyバージョンがある場合、そのスクリプトは削除されると思いますが、ベースイメージからノードバージョンを取得する必要があることを知ったときに、すでにそのロジックを書いていました。

そして、@falcoがasdf plugin update --allで私を救ってくれた時間と、私がこのスクリプトを書いた時間の間に、Rubyのバージョンは3.2.2に上がり、私のコードはそれを捉えてasdfがそれをインストールしました!上記のコードを更新スクリプトに追加しました。これには以下が含まれます。

「いいね!」 1

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。