Docker“docker-entrypoint-initdb.d”脚本未执行

3qpi33ja  于 2022-12-18  发布在  Docker
关注(0)|答案(2)|浏览(767)

我正在尝试运行一个“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
syqv5f0l

syqv5f0l1#

此映像不支持/docker-entrypoint-initdb.d
可以使用ENTRYPOINT,只需添加到Dockerfile即可
ENTRYPOINT sh crond.sh

jei2mxaa

jei2mxaa2#

也许你的文件有windows行尾(CRLF),而在你的容器中,预期的行尾是unix风格(LF)。如果你在linux操作系统上,这将是默认的。在windows中,你可以用记事本++来改变这一点。打开每个文件,然后转到Edit > EOL Conversion > Unix (LF)。这对我很有效。

相关问题