簡體   English   中英

具有Spring Boot的Docker映像無法連接到CloudSQL

[英]Docker image with Spring boot fails to connect to CloudSQL

我想使用Spring Boot創建Web服務,將其添加到Docker映像,連接到Cloud sql,然后在Compute Engine上運行。

我正在使用docker compose組合項目和雲sql代理映像的映像。 但是,無論我給它提供什么jdbc URL都無法連接。 現在,我正在本地嘗試所有這些

我嘗試了以下網址:

1. spring.datasource.url=jdbc:mysql:///cloudsql/myinstancename/${MYSQL_DATABASE}
2. spring.datasource.url=jdbc:mysql://cloudsql/myinstancename/${MYSQL_DATABASE}
3. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/${MYSQL_DATABASE}

泊塢窗,compose.yml

version: '3'

services:
  app:
    image: appname

    volumes:
      - cloudsql:/cloudsql
    depends_on:
      - sql_proxy
    ports:
      - 8080:8080

# SQL proxy is built correctly, says
# Listening on /cloudsql/myinstancename for myinstancename
# sql_proxy_1  |  Ready for new connections

  sql_proxy:
    environment:
      - MYSQL_ROOT_PASSWORD=password!#
      - MYSQL_DATABASE=appname
      - MYSQL_USER=root
    image: gcr.io/cloudsql-docker/gce-proxy:1.12
    command:
      /cloud_sql_proxy
      -dir=/cloudsql
      -instances=myinstancename  # (I have added this correctly)
      -credential_file=/root/keys/keyfile.json
    volumes:
      - E:\mykey.json:/root/keys/keyfile.json:ro
      - cloudsql:/cloudsql
    ports:
      - 3306:3306


volumes:
  # This empty property initializes a named volume.
  cloudsql:

application.properties:

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql:///cloudsql/myinstancename/${MYSQL_DATABASE}
spring.datasource.username=${MYSQL_USER}
spring.datasource.password=${MYSQL_ROOT_PASSWORD}
spring.security.enabled=false
security.ignored=/**

當前,您正在以Sidecar模式使用Cloud SQL代理,該模式在/cloudsql/<INSTANCE_CONNECTION_NAME>中安裝了可用於連接到Cloud SQL實例的unix套接字。 不幸的是,大多數Java JDBC驅動程序不支持unix套接字。 您可以切換Cloud SQL代理以提供一個tcp套接字,而不是類似以下內容: "-instances=<INSTANCE_CONNECTION_NAME>=tcp:3306"

或者,您可以使用Cloud SQL JDBC套接字工廠 這是一個Java庫,可讓您創建到Cloud SQL實例的經過身份驗證的連接,但不需要使用代理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM