Can't upgrade due to old docker version

During upgrade, I did cd /var/discourse; git pull; ./launcher rebuild app.

I get “Upgrade Complete” and “UPGRADE OF POSTGRES COMPLETE”. The latter says to “rebuild again”, though it seems to make no difference.

Despite upgrade being complete, I can’t start the app. Doing ./launcher start app gives the following error:

Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.

Can’t restart my app again, and not sure how to proceed.

./discourse-doctor doesn’t help (it just detects app isn’t running, tries to rebuild and restart, ends up with same error).

Can’t attach file, as a new user, so here’s what I think it the relevant snippet from debug log:

Failed to rebuild app.

Checking your domain name . . .

Connection to community.gingkoapp.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . . 

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_DEVELOPER_EMAILS=REDACTED  -e DISCOURSE_HOSTNAME=community.gingkoapp.com -e DISCOURSE_SMTP_ADDRESS=smtp.mailgun.org -e DISCOURSE_SMTP_USER_NAME=postmaster@community.gingkoapp.com -e DISCOURSE_SMTP_PASSWORD=REDACTED  -h community-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 2222:22 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:fc:04:ee:f5:11 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.
Failed to restart the container.
  1. What is Your docker version?
  2. Did You try solutions suggested in this FAQ?

Thanks!

Docker version 17.12.0-ce

I am in a space-constrained environment (I’m constantly being asked attempt to clean up images), so that sounds like a plausible reason for this failure.

Will try steps listed and report back.

Your discourse docker version is too old.
I’d suggest updating that before proceeding.

Not sure how to do that without the web interface (or curl to the API), given that it’s down. But will look into it. I’m just going to upgrade my droplet disk size first and see if that helps.

(unless you meant that my docker version is old?)

Ohh. I’m sorry.
I meant to say docker is too old. Try upgrading that first. Extremely sorry for the typo and confusion.

No worries, I figured that’s what you meant, since you asked for docker version.
I’m also on 14.04, so I’m going to upgrade that first, to 16.04.

Thanks again for the input. Will post back any updates.

Boy oh boy!

14.04 > 16.04 > 18.04 you’ve got a long day ahead.

Just bear in mind 16.04 is also EOL in 2021 so bump to at least 18.04

Working hard just to stand still… story of my life!
Software moves too fast for me! :stuck_out_tongue_closed_eyes:

2 Likes

I wish you all the best with this new adventure of software upgrades. :confetti_ball:

If that is a VPS it isn’t necessary to upgrade the current server. Spinnning a new one running 20.04 and moving your site to that new server is way faster and easier.

But their container is messed up and not starting due to multiple reasons.

Last automatic backup will be under the shared folder to be moved to the new server.

1 Like

Where can I find which is currently the oldest supported docker version with Discourse?

Here

1 Like

Yes, that’s what I’m doing at the moment. Should be much faster than upgrading current… cross my fingers that I can restore from backup files (which I can still access on the old server).

2 Likes

Thanks…!

So that seems like this one is supported well in current discourse… Why do you think it is too old @itsbhanusharma?

1 Like

Who said it’s supported?
Any docker version that is over a couple years old isn’t even supported by it’s developer then how do you expect it to be supported by discourse?

I’m just looking at the source code…

1 Like

All’s well now. I spun up a fresh Digital Ocean droplet and restored the backup. The latest backup was corrupt, I think, but at least I only lost one or two posts and restored successfully from the backup before that.

Thanks for your help, everyone!

3 Likes