discourse/bin/docker
Gary Pendergast cb5e0d358d
DEV: Run db:create in Docker dev container (#29295)
When attempting to [set up the Docker development environment](https://meta.discourse.org/t/install-discourse-for-development-using-docker/102009), I was seeing the following error when running `d/boot_dev --init`:

```
ActiveRecord::NoDatabaseError: We could not find your database: discourse_development. Available database configurations can be found in config/database.yml. (ActiveRecord::NoDatabaseError)
```

Running `db:create` before the `db:migrate` fixed this issue for me. It appears to be safe to run `db:create` even if the database already exists, running `d/rake db:create` locally shows an info message at the database already exists, but doesn't exit with an error.
2024-10-24 12:19:42 +02:00
..
boot_dev DEV: Run db:create in Docker dev container (#29295) 2024-10-24 12:19:42 +02:00
bundle
cleanup
discourse
ember-cli
exec
mailhog
migrate
psql
rails
rake
README.md
reset_db
rspec
shell
shell_root
shutdown_dev
unicorn

Developing using Docker

Since Discourse runs in Docker, why not develop there? If you have Docker installed, you should be able to run Discourse directly from your source directory using a Discourse development container.

You can find installation instructions and related discussion in this meta topic:
https://meta.discourse.org/t/beginners-guide-to-install-discourse-for-development-using-docker/102009

Where is the container image/Dockerfile defined?

The Dockerfile comes from discourse/discourse_docker on GitHub, in particular image/discourse_dev.