docker 安装20.2.0连接数据库问题
使用docker-compose安装最新的20.2.0,安装到链接数据库时提示错误
数据库连接失败 SQLSTATE[HY000] [1045] Access denied for user "root"@"172.23.0.3" (using password: YES)
docker-compose大概如下
zentao-mysql:
image: mysql:8.0
...
zentao:
image: hub.zentao.net/app/zentao:20.2.0
从你的配置文件看,你的期望是:使用一个独立的 mysql 容器 + 禅道的容器,来运行禅道
提示的信息中 mysql 的数据库地址不是 docker-compose 中的容器。
需要做如下调整
1. 你需要在compose 中建立一个网卡,让 zentao 和zentao-mysql 使用同一个网卡。
2. 在 zentao 配置的环境变量部分写入zentao-mysql 的信息。
参考
# docker-compose.yaml version: '2' services: # db service for zentao zentao-db: image: mariadb:10.6 container_name: zentao-db ports: - '3306:3306' volumes: - /data/zentao/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=pass4Zentao - MYSQL_DATABASE=zentao networks: - zentao-net # zentao service zentao: image: hub.zentao.net/app/zentao container_name: zentao ports: - '80:80' volumes: - /data/zentao/file:/data depends_on: - zentao-db environment: - ZT_MYSQL_HOST=zentao-db - ZT_MYSQL_PORT=3306 - ZT_MYSQL_USER=root - ZT_MYSQL_PASSWORD=pass4Zentao - ZT_MYSQL_DB=zentao - PHP_MAX_EXECUTION_TIME=120 - PHP_MEMORY_LIMIT=512M - PHP_POST_MAX_SIZE=128M - PHP_UPLOAD_MAX_FILESIZE=128M - LDAP_ENABLED=false - SMTP_ENABLED=false - APP_DEFAULT_PORT=80 - APP_DOMAIN=zentao.demo.com - PROTOCOL_TYPE=http - IS_CONTAINER=true - LINK_GIT=false - LINK_CI=false networks: - zentao-net networks: zentao-net: driver: bridge
我就是这样用的,20.2版本不行,换18.12可以
version: '2'
networks:
zentao-net:
driver: bridge
services:
zentao-mysql:
image: mysql:8.0
container_name: zentao-mysql
restart: always
ports:
- '3307:3306'
volumes:
- "/data/zentao/db/conf/my.cnf:/etc/my.cnf"
- "/data/zentao/db/data:/var/lib/mysql"
environment:
- MYSQL_ROOT_PASSWORD=********
- MYSQL_DATABASE=zentao
networks:
- zentao-net
zentao:
image: hub.zentao.net/app/zentao:latest
container_name: zentao
restart: always
ports:
- '8080:80'
volumes:
- '/data/zentao/repo:/data'
depends_on:
- zentao-mysql
environment:
- ZT_MYSQL_HOST=zentao-mysql
- ZT_MYSQL_PORT=3306
- ZT_MYSQL_USER=root
- ZT_MYSQL_PASSWORD=********
- ZT_MYSQL_DB=zentao
- PHP_MAX_EXECUTION_TIME=600
- PHP_MAX_INPUT_VARS=2000
- PHP_MEMORY_LIMIT=512M
- PHP_POST_MAX_SIZE=1024M
- PHP_UPLOAD_MAX_FILESIZE=1024M
- LDAP_ENABLED=false
- SMTP_ENABLED=false
- APP_DEFAULT_PORT=80
- APP_DOMAIN=zentao.demo.com
- PROTOCOL_TYPE=http
- EASYSOFT_DEBUG=true
- DEBUG=1
- IS_CONTAINER=true
- LINK_GIT=false
- LINK_CI=false
- LINK_SCAN=false
networks:
- zentao-net
我复制你的 docker-compose 内容(禅道镜像修改了一下 hub.zentao.net/app/zentao:20.2.0)。
可以很顺畅的跑起来。
注意这一步不要修改,默认填充的是对的(docker容器的名称)
![](https://cdn.easycorp.cn/web/data/contact/avatar/1481227768.png)
![](/theme/default/default/images/main/icon-contact-split.png)
![](/theme/default/default/images/main/icon-contact-split.png)
![](/theme/default/default/images/main/icon-contact-split.png)
![](https://cdn.easycorp.cn/web/data/contact/17663906485.png)