# Using Docker and Docker Compose for Development and Testing
-These instructions are designed for setting up The Rails Port for development and testing using [Docker](https://www.docker.com/). This will allow you to install the OpenStreetMap application and all its dependencies in Docker images and then run them in containers, almost with a single command. You will need to install Docker and Docker Compose on your development machine:
+These instructions are designed for setting up `openstreetmap-website` for development and testing using [Docker](https://www.docker.com/). This will allow you to install the OpenStreetMap application and all its dependencies in Docker images and then run them in containers, almost with a single command. You will need to install Docker and Docker Compose on your development machine:
- [Install Docker](https://docs.docker.com/install/)
- [Install Docker Compose](https://docs.docker.com/compose/install/)
+**Windows users: You must enable symlinks before cloning the repository.** This repository uses symbolic links that are not enabled by default on Windows. To enable them, [turn on Developer Mode](https://windowsreport.com/windows-11-developer-mode/) on Windows and run `git config --global core.symlinks true` to enable symlinks in Git. See [this StackOverflow question](https://stackoverflow.com/questions/5917249/git-symbolic-links-in-windows) for more information.
+
The first step is to fork/clone the repo to your local machine:
git clone https://github.com/openstreetmap/openstreetmap-website.git
touch config/settings.local.yml
+**Windows users:** `touch` is not an availible command in Windows so just create a `settings.local.yml` file in the `config` directory, or if you have WSL you can run `wsl touch config/settings.local.yml`.
+
## Installation
To build local Docker images run from the root directory of the repository:
Run the Rails database migrations:
- docker-compose run --rm web bundle exec rake db:migrate
+ docker-compose run --rm web bundle exec rails db:migrate
### Tests
Run the test suite by running:
- docker-compose run --rm web bundle exec rake test:db
+ docker-compose run --rm web bundle exec rails test:all
### Loading an OSM extract
docker-compose run --rm web osmosis \
-verbose \
--read-pbf district-of-columbia-latest.osm.pbf \
+ --log-progress \
--write-apidb \
host="db" \
database="openstreetmap" \
user="openstreetmap" \
validateSchemaVersion="no"
+**Windows users:** Powershell uses `` ` `` and CMD uses `^` at the end of each line, e.g.:
+
+ docker-compose run --rm web osmosis `
+ -verbose `
+ --read-pbf district-of-columbia-latest.osm.pbf `
+ --log-progress `
+ --write-apidb `
+ host="db" `
+ database="openstreetmap" `
+ user="openstreetmap" `
+ validateSchemaVersion="no"
+
Once you have data loaded for Washington, DC you should be able to navigate to [`http://localhost:3000/#map=12/38.8938/-77.0146`](http://localhost:3000/#map=12/38.8938/-77.0146) to begin working with your local instance.
### Additional Configuration