簡體   English   中英

Elastic Beanstalk Docker 私有注冊表與 docker-compose

[英]Elastic Beanstalk Docker private registry with docker-compose

我有一個來自用於團隊項目的私有注冊表的 Docker 映像。
Docker-compose.yml 由每個團隊成員 git 克隆,以允許容器的卷、環境和端口的隨時可用的配置。

version: '3'
services:
  webApp:
      image: my-private-registry/docker-app:latest
      ports:
        - 80:80
      volumes:
        - vendors:/var/www/app/vendor
        - ./var/logs/apache2:/var/log/apache2
volumes:
  vendors:

現在我希望將該圖像/撰寫文件項目部署到 AWS Elastic Beanstalk,但該平台無法使用 docker-compose 文件訪問私有 Docker 注冊表(圖像可能需要 Z05B6053C41A2130AFD6登錄錯誤)

到目前為止我已經嘗試和注意到的一些信息
A] 如果圖像是公開的,則 docker-compose 文件(到目前為止,我只是使用 web 控制台上傳)確實有效,圖像被提取,容器被創建並且應用程序運行良好。
但是,如果圖像是私有的,則即使按照此處的 AWS 說明進行操作,也無法獲得訪問權限。

{
  "AWSEBDockerrunVersion": "1",
  "Authentication": {
    "bucket": "my-s3-bucket",
    "key": "config.json"
  },
}

通過閱讀 eb-engine.log,我可以看到第一個docker-compose pull工作正常,但后來最終docker-compose up失敗 - 觸發錯誤,好像身份驗證在此過程中丟失了。

我知道 docker-compose pull有效,因為在 S3 Bucket 上的 config.json 中設置錯誤的身份驗證會觸發錯誤。

B] 如果我只使用Dockerrun.aws.json而不是docker-compose文件,則身份驗證和配置與私有 docker 映像完美配合。

{
  "AWSEBDockerrunVersion": "1",
  "Authentication": {
    "bucket": "my-s3-bucket",
    "key": "config.json"
  },
  "Ports": [
     {
      "ContainerPort": 80,
      "HostPort": 80
     }
  ],
  "Image": {
     "Name": "my-private-registry/docker-app:latest",
     "Update": "true"
  },
  "Volumes" : [
    {
      "HostDirectory":"/var/app/current/var/logs/apache2",
      "ContainerDirectory":"/var/log/apache2"
    },
  ]
}

這對於測試目的來說是可以的,但會迫使我們刪除從 docker-compose 到它的任何更改 - 因為 compose 文件在其他非 AWS 環境中使用,並且從長遠來看將不太理想。

我錯過了什么? 我的環境配置是否與 docker-compose 不匹配?

謝謝

更新 1通過使用sudo watch -n 1 -d cat /root/.docker/config.json
我已經看到在docker-compose pull期間存在身份驗證,但是一旦啟動CleanEbExtensions ,它們就消失了。
並且此命令在執行 docker-compose 之前啟動 - 並且docker-compose down --rmi all在兩者之間執行,使拉取無效。

怎么來的?

更新

原來這是一個 AWS 錯誤。 我在下面的答案中詳細介紹了解決方法的步驟。

事實證明這是AWS 方面的一個錯誤 我發現了一個非常相似的問題

AWS EB docker-compose 部署從私有注冊表訪問被禁止

當前的解決方案是使用部署掛鈎代替登錄執行 docker 或復制 authfile。

暫無
暫無

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

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