![](/img/trans.png)
[英]Can't create db in docker-entrypoint-initdb.d with mysql docker container
[英]docker-compose up invalid mode /docker-entrypoint-initdb.d/ - cannot create container for service database
我必須使用 docker-compose up 來啟動數據庫。 我們為此所需的一切都已經提供,並且對我的合作伙伴有用。 同時我有以下問題。 (我正在使用 Mac OS Catalina 順便說一句)每次我嘗試使用 docker-compose up 時都會發生以下錯誤
碼頭工人組成
創建 ziegel24_database_1...錯誤
錯誤:對於 ziegel24_database_1 無法為服務數據庫創建容器:無效模式:/docker-entrypoint-initdb.d/
錯誤:對於數據庫無法為服務數據庫創建容器:無效模式:/docker-entrypoint-initdb.d/ 錯誤:啟動項目時遇到錯誤。
docker-compose.yml 如下
version: "3.1"
services:
database:
image: mysql:5.7
volumes:
- ./mysql/db/entrypoint:/docker-entrypoint-initdb.d/
ports:
- "3308:3306"
environment:
- "MYSQL_ROOT_PASSWORD=geheim"
- "MYSQL_DATABASE=Ziegel24"
我已經檢查過我的 docker compose 和 engine 是否是正確的版本。 (Mysql 是一個較新的版本,但由於 docker 創建了一個新的數據庫,它會拉取所需的 sql 版本,我被告知)
我也試圖找到所說的 docker-entrypoint-initdb.d目錄,但即使在我的整個計算機上運行 find 也沒有給出結果,所以我猜整個目錄不在那里?
有沒有辦法手動下載它,或者它是否包含在我錯誤地沒有安裝的包中?
編輯我已經意識到 docker-entrypoint-initdb.d 無論如何都不應該在我的電腦上,而是在 mysql:5.7 圖像中。 我仍然不知道確切的錯誤是什么以及如何修復它,但是是的,這是新的。
由於我在搜索錯誤時沒有找到任何幫助,所以我來這里尋求幫助。
如果指定了訪問模式,卷的簡短語法是(HOST:CONTAINER)
或(HOST:CONTAINER:ro)
。 如果主機路徑包含冒號 ( :
,則CONTAINER
被解釋為訪問模式。
在您的情況下./mysql/db/entrypoint
是相對路徑,docker 將其擴展為完整路徑。 如果此完整路徑包含冒號, /docker-entrypoint-initdb.d/
被視為顯然無效的訪問模式(允許的值為ro
和rw
),因此會出現錯誤。
這可能不是你的情況,但我可以在 Ubuntu 14.04.5 LTS 上使用 Docker 版本 18.04.0-ce、build 3d479c0 和 docker-compose 版本 1.21.0、build 5920eb0 重現上述行為。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.