Docker 入口点 initdb 权限被拒绝

Luc*_*her 0 sql postgresql relational-database docker docker-compose

当我运行 docker-compose up 时,出现以下错误:

在此输入图像描述

非常感谢你的帮助

小智 6

我通过将脚本复制到 docker-entrypoint-initdb.d 后将其添加到 Dockerfile 解决了这个问题

RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

Dockerfile 示例

FROM mysql:latest

ENV MYSQL_DATABASE NAME_DATABASE
ENV MYSQL_ROOT_PASSWORD ***********

COPY ./sql-scripts/ /docker-entrypoint-initdb.d/
RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/
EXPOSE 3306

CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
Run Code Online (Sandbox Code Playgroud)

下一步是构建图像:

docker build -t image-db:latest . 
Run Code Online (Sandbox Code Playgroud)

下一步是创建容器

docker run -d -p 3306:3306 --name container-db  image-db:latest
Run Code Online (Sandbox Code Playgroud)

  • 找到了解决方案,只需“chmod -R 777 /config/folder”即可解决问题。其中`config/folder`是mysql脚本所在的位置。 (2认同)