簡體   English   中英

Docker 入口點 initdb 權限被拒絕

[英]Docker entrypoint initdb PERMISSION DENIED

運行 docker-compose 時出現以下錯誤:

在此處輸入圖像描述

非常感謝你的幫助

在將腳本復制到 docker-entrypoint-initdb.d 后,我通過將其添加到 Dockerfile 解決了這個問題

RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/

示例 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"]

下一步是構建鏡像:

docker build -t image-db:latest . 

下一步是創建容器

docker run -d -p 3306:3306 --name container-db  image-db:latest

您不應覆蓋 postgres 圖像入口點。 它旨在在/docker-entrypoint-initdb.d/目錄中查找.sql文件(參見腳本中的行)。

您應該將.sql文件掛載到/docker-entrypoint-initdb.d/ ,並且應該在啟動時進行處理(僅當數據庫不存在時)

我有同樣的問題,但是,我的問題是由於 Linux 用戶而發生的。 我使用 root 作為運行程序,所以問題發生是因為本地計算機中的安裝卷沒有權限。 在這方面,我使用了chmod -R 777 scripts並且效果很好。 從技術上講,您需要為本地機器和容器設置權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM