我正在尝试在docker中运行一个grails应用程序,并继续运行一些mysql连接问题。我无法弄清楚问题出在哪里。
这是我的码头工人撰写文件
version: "2"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root2017
MYSQL_DATABASE: dbname
MYSQL_USER: Dbuser
MYSQL_PASSWORD: passw
grails:
depends_on:
- db
ports:
- "9001:9001"
restart: always
environment:
DB_HOST: db:3306
DB_PASSWORD: passw
volumes:
db_data:
grails 应用程序不会以以下错误启动:
错误 18:08:05 org.apache.tomcat.jdbc.pool.ConnectionPool - 无法创建池的初始连接。grails_1 |com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications Link failure
您需要将数据源配置为指向"jdbc:mysql://db:3306/dbname"
您可以使用生产环境的外部配置文件执行此操作。或者,您可以从系统环境中读取主机和数据库名称的值。
请参阅使用 docker 和 docker 撰写将 grails 应用程序战争部署到 tomcat