我是一个docker菜鸟,我尝试在Windows环境中实现一个redmine+mysql容器,然后在其中添加生产mysql转储。
在执行 sql 脚本生产转储后尝试访问 redmine 时遇到问题,在 sql 启动后,使用 docker 浏览 redmine 时仅出现内部错误。 我不知道如何更改数据撰写文件中的数据库名称,如果我用其他任何内容替换“redmine”,我的脚本就会损坏。
我也不知道如何访问 docker 中的 redmine 错误日志文件夹来解决问题。
这是我的 docker-compose 文件:
version: '3.7'
services:
db:
image: mysql:5.5.47
restart: always
ports:
- 3306:3306
volumes:
- .\mysql_files\data-mysql:/var/lib/mysql
- .\mysql_files\backup-mysql:/var/lib/mysql/backup
- .\mysql_files\dump-mysql:/docker-entrypoint-initdb.d
environment:
MYSQL_ROOT_PASSWORD: monmdp
MYSQL_DATABASE: redmine
redmine:
image: redmine:4.0.3
restart: always
ports:
- 8080:3000
depends_on:
- db
volumes:
- .\redmine_files\files:/usr/local/redmine/files
- .\redmine_files\logs:/var/log/redmine
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: monmdp
如你所见,我尝试访问此行中的 redmine 日志文件夹:
- .\redmine_files\logs:/var/log/redmine
但文件夹仍然是空的:(
预期结果:可以通过生产数据转储浏览redmine
当前结果:无法浏览redmine,也无法访问日志文件夹来检查问题所在。
感谢您的帮助
据我了解,您正在尝试访问redmine容器的日志,但发现
.\redmine_files\logs
目录为空。首先需要检查docker/var/log/redmine
目录下是否有日志。您可以通过在 redmine shell 本身中运行命令来完成此操作。使用命令 docker exec -it redmine /bin/bash
移动到 redmine shell,使用 cd
到 /var/log/redmine
检查日志是否存在。如果您在那里找不到日志,则意味着没有日志可复制到 ./redmine_files/logs
。
如果您在 /var/log/redmine
中找到日志,那么您的 docker-compose 文件一定存在问题,但对我来说似乎没问题。另外,正如@Mihai建议的,您可以使用命令sudo docker-compose logs redmine
检查redmine的日志,看看它是否正常运行。
这个停靠镜像主机 redmine 在 /usr/src/redmine/ 下,所以你应该使用
- .\redmine_files\logs:/usr/src/redmine/log
对于Redmine的Dockerfile,日志文件不会保存在容器内。相反,它们被设置为直接输出到 STDOUT。
echo 'config.logger = Logger.new(STDOUT)' > config/additional_environment.rb; # line 93
https://github.com/docker-library/redmine/blob/master/5.0/bookworm/Dockerfile