Amazon-Web-Services
AWS Cloud9 建構 Docker 映像失敗
我對網路和伺服器管理很陌生,所以提前感謝您的耐心等待。
目前我正在學習如何在 AWS 的 Cloud9 上建構一個 docker 鏡像。
我正在關注的教程來自 AWS 本身,名為 MythicalMysfits,旨在引導新使用者了解 AWS 上使用的主要工具來建構現代 Web 應用程序。
我目前正在進行第 2 步,建立一個動態網站:
當我執行以下命令時:
docker build . -t REPLACE_ME_AWS_ACCOUNT_ID.dkr.ecr.REPLACE_ME_REGION.amazonaws.com/mythicalmysfits/service:latest
我當然用我的帳戶 ID 和地區替換了必要的兩個部分。
它提示另一個名為“Dockerfile”的文件,其中包含要執行的以下命令:
FROM ubuntu:latest RUN echo Updating existing packages, installing and upgrading python and pip. RUN apt-get update -y RUN apt-get install -y python-pip python-dev build-essential RUN pip install --upgrade pip RUN echo Copying the Mythical Mysfits Flask service into a service directory. COPY ./service /MythicalMysfitsService WORKDIR /MythicalMysfitsService RUN echo Installing Python packages listed in requirements.txt RUN pip install -r ./requirements.txt RUN echo Starting python and starting the Flask service... ENTRYPOINT ["python"] CMD ["mythicalMysfitsService.py"]
此時程式碼開始執行,但失敗:
Sending build context to Docker daemon 14.85kB Step 1/13 : FROM ubuntu:latest ---> 1d622ef86b13 Step 2/13 : RUN echo Updating existing packages, installing and upgrading python and pip. ---> Using cache ---> d5aa972842ca Step 3/13 : RUN apt-get update -y ---> Using cache ---> 56374a45d258 Step 4/13 : RUN apt-get install -y python-pip python-dev build-essential ---> Running in 3ce71d802d94 Reading package lists... Building dependency tree... Reading state information... E: Unable to locate package python-pip The command '/bin/sh -c apt-get install -y python-pip python-dev build-essential' returned a non-zero code: 100
我知道在本文件之外,apt-get 在 Cloud9 的 IDE 中不起作用,因此我設法使用 sudo yum 手動安裝了 python 包。我現在花了兩天多的幾個小時試圖弄清楚。正如教程建議的那樣,我也在正確的目錄中。
你知道為什麼“Dockerfile”行為不端嗎?
我再次感謝你的時間。
我也在關注相同的教程。我和你有同樣的問題。
我通過以下方式解決了它:
- 使用python3-pip而不是python-pi
- 使用pip3代替pip
在 Docker 文件中,您只需要更改以下幾行:
- 將第 4 行替換為:
RUN apt-get install -y python3-pip python-dev build-essential
- 將第 5 行替換為:
RUN pip3 install --upgrade pip
- 將第 10 行替換為:
RUN pip3 install -r ./requirements.txt
- 將第 12 行替換為:
ENTRYPOINT ["python3"]
我將 Dockerfile 的第一行從
FROM ubuntu:latest
到
FROM ubuntu:18.04
不過,我不能說這是否有任何成本影響。