我正在尝试为 dotcms 站点的开发构建一个 docker-compose 文件。
我的 docker-compose.yml 中有以下内容:
version: "3"
services:
dotcms:
image: openjdk
command: /app/bin/startup.sh run
ports:
- 8080:8080
volumes:
- ./:/app
depends_on:
- db
db:
image: mysql
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0 --lower_case_table_names=1
volumes:
- ./db:/var/lib/mysql
ports:
- 3308:3306
environment:
MYSQL_ROOT_PASSWORD: dotcms
MYSQL_DATABASE: dotcms
MYSQL_USER: dotcms
MYSQL_PASSWORD: dotcms
跑完之后docker-compose up
当我尝试加载时localhost:8080
,出现 500 错误。我看了一下,dotcms database
有一张桌子叫db_version
但是就是这样。不创建其他表。
我曾尝试删除dotcms
数据库并重新创建然后docker-compose up
再次运行,但我遇到了同样的问题。
我也尝试过删除./db
文件夹(mysql
数据库的安装卷)并重新运行,同样的问题。
更新
我已经更新了dotcms
要运行的容器:command: sh -c "sleep 30 && /app/bin/startup.sh run"
我还添加--general_log=1 --general_log_file=/var/log/mysql/query.log
到db
command
我删除了本地db
文件夹并docker-composer
再次运行。
仍然得到相同的结果。以下是日志:
dotcms.log: https://pastebin.com/5WnrarK8
catalina.log: https://pastebin.com/Z3vHbnp2
localhost.log: https://pastebin.com/S2CSPqxQ
从db
容器
mysql.error.log : https://pastebin.com/4bYwB2Z2
mysql.query.log: https://pastebin.com/maDUXFm5
(这个查询文件非常大,我在第一个条目显示之前删除了所有内容:mysql-connector-java-5.1.37
docker logs <container id>
db.container.log:https
://pastebin.com/Wz7aRhVc dotcms.container.log:https ://pastebin.com/qNVBfTpf