18.6 docker版本报错
第一次安装,配置了MySQL数据库,是正常的,第二次启动时候,就报错了。内容如下:
16:02:46.89
16:02:46.89 Welcome to the Easysoft ZenTao 18.6 container
16:02:46.89 Subscribe to project updates by watching https://www.zentao.net
16:02:46.89 Submit issues and feature requests at https://www.zentao.net/ask.html
16:02:46.89
16:02:46.90 INFO ==> Prepare persistence directories.
16:02:46.98 INFO ==> Render php.ini with environment variables.
16:02:47.00 INFO ==> Render apache sites config with envionment variables.
16:02:47.02 INFO ==> MySQL config file exists, skip configure.
16:02:47.03 INFO ==> Check whether the MySQL is available.
230830 16:02:47 mysqld_safe Logging to '/data/mysql/logs/mysql_error.log'.
230830 16:02:47 mysqld_safe Starting mariadbd daemon with databases from /data/mysql/data
16:02:48.04 INFO ==> MySQL is ready.
ln: failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists
docker 版本是 24.0.5
禅道版本 18.6
执行run之后,服务器停机扩展内存。
服务器开机
docker start 禅道容器,就报这个错了。
我们已经定位问题,容器停止后,正常的操作是把停止的容器删掉(docker rm 容器id),然后再重新运行容器(docker run),而不是直接docker start
如果容器异常停止,或者正常停止,再执行docker start,容器之前运行过程中的临时文件仍然存在,因此建议删除容器后重新运行,这样除了持久化目录外,其他的环境都是全新的。
你遇到的报错就是因为这个原因引起的,我们的镜像做一些兼容,这样可以保证在start时也可以正常启动,但我们仍然不建议这样操做。
将外部数据库密码修改成只带字母和数字的密码,
然后去容器里面/config/my.php 这个位置去修改一下密码
Docker ps -a 找到禅道的容器,stop并且rm容器
重新启动,以官方案例填入自己的外部数据库的配置,如下:
使用外部数据库
docker run -it \
-v $PWD/data:/data \
-p 80:80 \
-e MYSQL_INTERNAL=false \
-e ZT_MYSQL_HOST=<你的MySQL服务地址> \
-e ZT_MYSQL_PORT=<你的MySQL服务端口> \
-e ZT_MYSQL_USER=<你的MySQL服务用户名> \
-e ZT_MYSQL_PASSWORD=<你的MySQL服务密码> \
-e ZT_MYSQL_DB=<禅道数据库名> \
hub.zentao.net/app/zentao
今天遇到了同样的问题,执行docker restart后就报错启动不起来了。如果把容器删除是不是所有已配置的数据都没有了??