Hi!
Today I looked at my Discourse installation and after rebuilding app image, somehow decided to check ruby version.
./launcher enter app
ruby -v
ruby 2.0.0p647 (2015-08-18 revision 51631) [x86_64-linux]
It really surprised me, because 2.0 branch is not officially supported anymore.
Am I doing something wrong? Or Discourse really use 2.0 ruby?
I started looking for PosgreSQL version and found 9.3.11. I found 9.5 template, but no info about how to upgrade to it. Is it not complete yet?
Answer Thanks to @sam
Hmmm, that doesn’t look like my localhost version
ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [i386-linux-gnu]
Falco
(Falco)
May 14, 2016, 6:58pm
3
Discourse Docker is still on Ruby 2.0 and PostgreSQL 9.3 indeed.
Updating to 2.3 will add more memory pressure, so it’s a risk.
PostgreSQL however will bring some perf increases, and PostgreSQL 9.6 later this year will be a very good perf increase for multi-cores installs.
Is localhost for dev? I am talking about docker container
But its not the way to sit on 2.0. Rails 5 will need 2.2 minimum version.
Any info about upgrade process?
arrowcircle:
Is localhost for dev?
Yes.
So t’s more correct to say that Docker is using Ruby 2.0 rather than Discourse is using Ruby 2.0 ?
Falco
(Falco)
May 14, 2016, 7:54pm
6
They are going to take this updates when possible. On this release they are working on updating Ember.
If I was they PM I was going to take PostgreSQL update when 9.6 lands. Parallel scans are too good to pass .
And on Ruby IDK, they don’t really need Action Cable. And Discourse works on ruby 2.3 and is already tested on travis on it.
1 Like
sam
(Sam Saffron)
May 14, 2016, 10:10pm
7
Memory usage is higher but almost back on 2.3
https://rubybench.org/ruby/ruby/releases?result_type=discourse_memory_usage
Also performance is a bit slower on the 50 percentile, which is pretty much all the consumers of the docker image see cause we do out-of-band GC
https://rubybench.org/ruby/ruby/releases?result_type=discourse_categories
That said, my hand is forced and I am going to have just run Ruby 2.3.1 in our latest images cause 2.0 is no longer supported.
We already have 2.2 with Github patches image that is running here on meta. It is activated with:
base_image: discourse/discourse_fast_switch:1.0.17
run:
exec: use_22
4 Likes
@sam Thanks for the answer.
Where should we put this code? I tried to put in in the beginning of my app.yml.
Then tried to put run section to first place of run yml, but after rebuilding container my app is down.
There are no errors in log files. Looks like unicorn dont start at all.
I noticed, that
use_22
runs after bundler completes installing gems.
What I doing wrong?
sam
(Sam Saffron)
May 15, 2016, 12:08pm
9
Yeah probably you need to use a the before_web hook
I would not worry about it, we are going to upgrade Ruby to 2.3.1 next week
4 Likes
Thanks!
And what about postgres? Are you planning to move to 9.5? Or will wait for 9.6? Can I help with it?
sam
(Sam Saffron)
May 15, 2016, 12:37pm
11
We plan to move to 9.5 as well
2 Likes
I bootstrapped a multi-site with new base image and pg9.5. Except 100MB more base image size issue , it works quite good at a stage site.
I also have a illusion of fast. Nice work!
Warning : Don’t try this if you don’t understand the code. Don’t do it in production.
base_image: discourse/discourse:1.3.0
templates:
- "templates/new.postgres.template.yml"
3 Likes