簡體   English   中英

AWS Elastic Beanstalk 與 AMI2 和 docker-compose.yml

[英]AWS Elastic Beanstalk with AMI2 and docker-compose.yml

我一直在嘗試使 Elastic Beanstalk 與 Docker AMI2 圖像和docker-compose.yml 文檔說它應該與docker-compose.yml文件一起使用。 我將 ECR 用作 docker 注冊表,並更新了 Elastic Beanstalk 角色,以便能夠從 ECR 中提取圖像。 https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/dg/single-container-docker-configuration.html

創建 docker-compose.yml 文件以將 Docker 映像從托管存儲庫部署到 Elastic Beanstalk。 如果您的所有部署都來自公共存儲庫中的圖像,則不需要其他文件。 (如果您的部署必須從私有存儲庫獲取映像,則需要包含其他配置文件以進行身份驗證。有關更多信息,請參閱使用來自私有存儲庫的映像。)有關 docker-compose.yml 文件的更多信息,請參閱撰寫文件參考在 Docker 網站上。

但是,在啟動環境時,我不斷收到以下消息:

實例部署:您必須在源包中的“Dockerfile”或“Dockerrun.aws.json”中指定 Docker 映像。 部署失敗。

根據文檔Dockerrun.aws.json應該只需要舊 AMI。 有沒有人遇到過類似的問題?

找到了解決方案。 文檔指出docker-compose.yml是唯一需要的文件,但在上傳到 Elastic Beanstalk 環境之前仍需要對其進行壓縮。

從 dockerrun.json 文件遷移到 docker-compose 文件時,我遇到了一些類似的問題。

我所做的基本上是在彈性 beanstalk 上創建一個新應用程序,並將Docker 下的 Amazon Linux 2 平台指定為部署選項。

下面我將附上我的 docker-compose.yaml 文件以及 Github 工作流程,如果您有興趣(或者如果它可能對其他人有幫助)

Docker-compose.yaml,您需要刪除圖像或插入您自己的圖像標簽 url。

version: '3'
services:
  node-app:
    image: <IMG-TAG here e.g from ECR repository>
    ports:
      - 80:80

github.yaml

  deploy-staging:
    runs-on: ubuntu-latest
    needs: [build]
    steps:
      - uses: actions/checkout@v2

      - name: Generate deployment package
        run: |
          zip -r deploy.zip *
      - name: Deploy to EB
        uses: einaregilsson/beanstalk-deploy@v9
        with:
          aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          application_name: test
          environment_name: test
          version_label: ${{ github.sha }}
          region: eu-north-1
          deployment_package: deploy.zip
          use_existing_version_if_available: true

暫無
暫無

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

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