# Executando Cloud SQL proxy no docker-compose

Quando você tem alguma aplicação que precisa acessar uma base existente no Cloud SQL mas que a mesma se encontra em um container Docker, podemos fazer uso do `docker-compose.yaml` para definir os serviços.

Além da sua aplicação, vamos precisar de uma imagem que possua o binário `cloud_sql_proxy`, como a imagem `gcr.io/cloudsql-docker/gce-proxy`.

Abaixo vamos fazer a execução e o _bind_ via _adhoc_ com o comando `docker` como exemplo:

```bash
docker run -d \
	-v PATH_TO_KEY_FILE:/config \
	-p 127.0.0.1:5432:5432 \
	gcr.io/cloudsql-docker/gce-proxy:1.32.0 /cloud_sql_proxy \
	-instances=INSTANCE_CONNECTION_NAME=tcp:0.0.0.0:5432 \
	-credential_file=/config
```


Seguindo essa mesma premissa, vamos preparar o `docker-compose.yaml`

```yaml
version: "3.8"
services:
  app:
    # ...

  database:
    container_name: "cloud-sql-proxy"
    image: gcr.io/cloudsql-docker/gce-proxy:1.32.0
    volumes:
      - ./serviceAccount.json:/config
    ports:
      - 5432:5432
    command: "/cloud_sql_proxy -instances=project-12e2:us-central1:database-instance=tcp:0.0.0.0:5432 -credential_file=/config"
```

