簡體   English   中英

docker-compose up invalid mode /docker-entrypoint-initdb.d/ - 無法為服務數據庫創建容器

[英]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/被視為顯然無效的訪問模式(允許的值為rorw ),因此會出現錯誤。

這可能不是你的情況,但我可以在 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.

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