<p>Hey <a href="https://github.com/tomhughes" class="user-mention">@tomhughes</a>. I'm definitely not an expert on the inner workings of Docker, but as I understand it the two containers defined in the <code>docker-compose</code> do talk directly to each other. Hence the need for the setting of <code>host: db</code> in the <code>database.yml</code> file – basically this translates to the IP address the <code>db</code> container is using without actually having to hard-code an IP.</p>
<p>The port <code>5432</code> is also defined in the <code>docker-compose</code> – this is to make it available to your local machine. As you discovered, this clashes if you also have Postgres running locally on the same port. Obviously the idea with Docker is that you don't need to run any services locally.</p>
<p>Hope this makes sense.</p>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1290#issuecomment-247872288">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABWnLR05V7vSXoSyNkUzAIK7ne0pZXBIks5qrZjLgaJpZM4J-dnj">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABWnLYDgyyeOC8NWqgJJb8xdlVRX8dyHks5qrZjLgaJpZM4J-dnj.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="url" href="https://github.com/openstreetmap/openstreetmap-website/pull/1290#issuecomment-247872288"></link>
<meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/openstreetmap/openstreetmap-website","title":"openstreetmap/openstreetmap-website","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/openstreetmap/openstreetmap-website"}},"updates":{"snippets":[{"icon":"PERSON","message":"@paulsturgess in #1290: Hey @tomhughes. I'm definitely not an expert on the inner workings of Docker, but as I understand it the two containers defined in the `docker-compose` do talk directly to each other. Hence the need for the setting of `host: db` in the `database.yml` file – basically this translates to the IP address the `db` container is using without actually having to hard-code an IP.\r\n\r\nThe port `5432` is also defined in the `docker-compose` – this is to make it available to your local machine. As you discovered, this clashes if you also have Postgres running locally on the same port. Obviously the idea with Docker is that you don't need to run any services locally.\r\n\r\nHope this makes sense."}],"action":{"name":"View Pull Request","url":"https://github.com/openstreetmap/openstreetmap-website/pull/1290#issuecomment-247872288"}}}</script>