簡體   English   中英

Docker 部署總是失敗——巨大的容器大小

[英]Docker deployment always fails - massive container size

我們正在嘗試將 Flask Docker 容器部署到 AWS Elastic Beanstalk,部署和我們的網站在一段時間內運行良好。 我們的 Docker 容器很大 (5GB),因為我們在 requirements.txt 中的依賴項比實際使用的要多,因為我們在非虛擬環境中使用 pip freeze 對其進行了初始化。

我們遇到了庫問題(Apache Tika 在本地正常工作,但我們在部署時遇到錯誤,暗示我們需要安裝 Java),因此我們嘗試將 Java 安裝添加到我們的 Dockerfile。 由於我們已經嘗試過了,我們無法在 AWS 上部署任何東西,甚至是我們的舊存儲庫。 我已經嘗試從 requirements.txt 中刪除 Java 安裝以及所有不必要的 pip 依賴項,但是當我們使用“docker build”時,舊的 pip 依賴項仍在安裝並且 Docker 容器更大,並不比以前小。

在 AWS EB 日志中,沒有應用程序日志文件,因為部署失敗,但我們看到如下錯誤:-2022/12/19 19:56:18.408872 [ERROR] An error occurred during execution of command [app-deploy] - [Docker 特定構建應用程序]。 停止運行命令。 錯誤:拉取 docker 鏡像失敗:命令 /bin/sh -c docker pull URL.dkr.ecr.us-east-1.amazonaws.com/url-path:latest failed with error 命令在 300 秒后超時 -2022/ 12/19 19:56:18.728922 [INFO] 命令服務響應:{“status”:“FAILURE”,“api_version”:“1.0”,“results”:[{“status”:“FAILURE”,“msg”:”引擎執行遇到錯誤。","returncode":1,"events":[{"msg":"實例部署下載Docker鏡像失敗,部署失敗。","timestamp":1671479778249,"severity" :"ERROR"},{"msg":"實例部署失敗。詳情請查看'eb-engine.log'。","timestamp":1671479778487,"severity":"ERROR"}]}]}

我們的 Dockerfile 看起來像:

FROM python:3.9

# Set the working directory and install the requirements
WORKDIR /server
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

# Expose port 5000 and copy the source code
EXPOSE 5000
COPY . .

# Run the application using gunicorn
CMD ["gunicorn", "wsgi:app", "-w 2", "-b 0.0.0.0:5000", "-t 30"]

我們嘗試過的:

題:

是什么導致了 Docker 容器的巨大尺寸? 我們如何解決這個問題並成功地將 Docker 容器部署到 AWS Elastic Beanstalk?

我們通過延長 Elastic Beanstalk config.yml 中的超時解決了這個問題。

aws:elasticbeanstalk:command:
      timeout: 900

這仍然不能解釋為什么我們擺脫的舊 pip 依賴項被安裝在新的 Docker 構建中,所以任何能夠回答這個問題的人都會受到贊賞並被接受為答案。

暫無
暫無

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

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