Hi Jason,
The steps you are running are all you should need to do. Based on the provided snippet it looks like the MySQL cBioPortal database was not initialized properly. There are a few ways to confirm this:
1) View the logs of the cbioportal mysql container and verify that mysql is properly stepping the database schema and loading the seed database:
Run:
docker logs cbioportal-database-container 2>&1 | grep initdb
You should get something back like:
2025-10-07 18:34:57+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/cgds.sql
2025-10-07 18:34:58+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/seed.sql.gz
2) If you see this above entries, take it one step farther and confirm that the database and tables exist within the cbioportal-database-container:
Run:
docker exec -it cbioportal-database-container bash
Then inside the container run:
mysql -u root -p$MYSQL_ROOT_PASSWORD -e "SHOW DATABASES;”
You should get a “Database” listing back that includes “cbioportal”
If you see the cbioportal database, you can then run:
mysql -u root -p$MYSQL_ROOT_PASSWORD cbioportal -e "SHOW TABLES;”
This will return a list of about 50 tables, beginning with “allele_specific_copy_number” and ending with “users”.
If you’ve confirm that the database was not initialized properly, you will have to bring down the docker containers and remove the persistent volume (where MySQL stores the cbioportal database). Removing the persistent volume is essential. This will force MySQL to reinitialize the cBioPortal database on startup.
Stop and remove containers and volumes:
docker-compose down -v
Restart fresh:
docker-compose up -d
After doing this, you should be able to go though steps 1) and 2) above to confirm the proper database initialization. If this doesn’t work, it could be that the MySQL container cannot find the schema and seed database files (the container log file may confirm this). I would check that cgds.sql and seed.sql.gz were properly downloaded and placed in the /data subdirectory. Note, the MySQL container is programmed to look in the docker-entry point-initdb.d directory inside the container the first time it is started, so its important the .sql files have been downloaded and placed in the correct directory as they get mapped to this location in the container per docker-compose.yml:
- ./data/cgds.sql:/docker-entrypoint-initdb.d/cgds.sql:ro
- ./data/seed.sql.gz:/docker-entrypoint-initdb.d/seed.sql.gz:ro
After all this, if you are still having an issue, send me the output of the docker logs command and I can try to determine the issue.
Good luck,
-Benjamin