Migrate packaged installation to docker compose.
WHY:
References:
Setup all containers…
Packaged installation creates binary .pgdump which cannot be restored directly on target container due to owner mismatch.
Packaged installation:
New docker installation:
First create .sql dump on packaged installation:
pg_dump $(sudo openproject config:get DATABASE_URL) -x -O | zstd > openproject.sql.zst
Restore .sql dump on target. Clean installation of OpenProject in docker compose should be running. Stop all containers. Run only db container and remove everything from default installation:
docker compose down docker compose up -d db docker compose exec -it -u postgres db psql -c "DROP DATABASE openproject;" docker compose exec -it -u postgres db psql -c "CREATE DATABASE openproject OWNER postgres;"
Restore .sql dump:
zstd -d -c openproject.sql.zst | docker compose exec -T -u postgres db psql -d openproject
Convert schema openproject to public
docker compose exec -it -u postgres db psql -d openproject -c "DROP SCHEM A public CASCADE;" docker compose exec -it -u postgres db psql -d openproject -c "ALTER SCHEMA openproject RENAME TO public;"
Verify that there are tables and OP users:
docker compose exec -it -u postgres db psql -d openproject -c "\dt" docker compose exec -it -u postgres db psql -d openproject -c "SELECT count(*) FROM users;"
Startup everything:
docker compose up -d
tar -C /var/openproject/assets/files/ -xf attachments-latest.tar.gz chown -R 1000:1000 /var/openproject/assets
References:
References to do:
Verify what final docker compose envs looks like with command:
docker compose config
There are issues with passing SMTP related env to OP:
Using postfix relay on local host.