我正在尝试运行一个“docker-entrypoint-initdb.d”脚本。脚本确实被复制到了正确的文件夹中:“/docker-entrypoint-initdb.d”,但它不会执行。我是否遗漏了什么?我以为“/docker-entrypoint-initdb.d”中的文件会自动执行。
请注意我使用的是一个高山版本的PHP“FROM php:7-fpm-alpine”。
“docker-compose.yml”:
services:
php:
build:
context: ./
dockerfile: ./etc/docker/php/Dockerfile
volumes:
- ${PROJECT_PATH}/etc/docker/php/db-init-scripts:/docker-entrypoint-initdb.d
数据库初始化脚本crond.sh:
#!/bin/sh
crond -l 2 -f
2条答案
按热度按时间syqv5f0l1#
此映像不支持
/docker-entrypoint-initdb.d
可以使用
ENTRYPOINT
,只需添加到Dockerfile
即可ENTRYPOINT sh crond.sh
jei2mxaa2#
也许你的文件有windows行尾(CRLF),而在你的容器中,预期的行尾是unix风格(LF)。如果你在linux操作系统上,这将是默认的。在windows中,你可以用记事本++来改变这一点。打开每个文件,然后转到
Edit > EOL Conversion > Unix (LF)
。这对我很有效。