I just decided to try my idea so I created a new ext4 disk image on linode, rebooted into rescue mode (Finnix LiveCD), copied everything from the ext3 disk image to the ext4 disk image, changed my linode to boot from the ext4 disk image and started my linode.
I then deleted /var/discourse and with my docker image gone my /var/lib/docker was empty again too.
I restarted my discourse install from step 1.
I did the same as before though I did change a couple of things in app.yml that were recommended for 1GB.
When I ran ./launcher bootstrap app
, I thought I saw the error with the tables again but like before discourse seemed to work.
Also this time when signing up for an admin account, I got an email from MailJet saying I needed to approve a need sender address.
I didn’t have an MX record for forum.mydomain.tld, just mydomain.tld so I added one, told discourse to resend the email and now I got the message.
I just checked /log and saw this again:
PG::UndefinedTable: ERROR: relation "users" does not exist
LINE 5: WHERE a.attrelid = '"users"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
Though unlike before I no problems with email.
So in short: It appears when you using overlayfs with docker your root filesystem needs to be ext4 not ext3 or you will not be able to send email (also using the vfs storage driver for docker with ext3 root file system seems to fail though that maybe because the vfs driver quickly uses all disk space).
Unless it was just a coincidence and it was setting these settings in app.yml which made the email work:
db_shared_buffers: "256MB"
UNICORN_WORKERS: 2
Before the settings were commented out as they were set to whatever the defaults are.