Executando Cloud SQL proxy no docker-compose

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:

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

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"