最原始的Dokcerfile
# 使用官方Python 3.6.8鏡像
FROM python:3.6.8-slimWORKDIR /app# 復制依賴文件
COPY requirements.txt .RUN pip install --upgrade pip
# 檢查并安裝依賴(自動處理未安裝的包)
RUN pip install --no-cache-dir -r requirements.txt || \{ echo "Failed to install some packages. Retrying with --upgrade..." && \pip install --no-cache-dir --upgrade -r requirements.txt; }# 復制應用代碼
COPY . .# 添加健康檢查(驗證Python環境)
HEALTHCHECK --interval=30s --timeout=10s \CMD python -c "import sys; from pkg_resources import require; require(open('requirements.txt').read())" || exit 1CMD ["python", "/app/HsSignalQa/server.py"]
此方式會到國外源中下載,阿里云始終無法下載,提示如下
[+] Building 0.4s (3/3) FINISHED => [internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 930B 0.0s=> [internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s=> ERROR [internal] load metadata for swr.cn-east-3.myhuaweicloud.com/library/python:3.6.8-slim 0.4s
------> [internal] load metadata for swr.cn-east-3.myhuaweicloud.com/library/python:3.6.8-slim:
------
failed to solve: swr.cn-east-3.myhuaweicloud.com/library/python:3.6.8-slim: swr.cn-east-3.myhuaweicloud.com/library/python:3.6.8-slim: not found #最原始的錯誤已覆蓋,這個錯誤是另外一個源的錯誤,相同的問題
經過多輪測試均不能訪問,一下是解決方法
重點是下面的第2項
使用阿里云容器鏡像服務加速器
阿里云提供了Docker Hub鏡像加速服務:
- 登錄阿里云控制臺
- 進入"容器鏡像服務" > “鏡像加速器”
- 獲取專屬加速器地址
- 配置Docker使用該鏡像源:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<your-accelerator-address>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
登錄我的阿里云控制臺發現,我的控制臺是這樣的
注意紅色的地方,將我的Dockerfile更改為該地址
FROM xxx替換紅色框的馬賽克.mirror.aliyuncs.com/library/python:3.6.8-slimWORKDIR /app# 復制依賴文件
COPY requirements.txt .RUN pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# 檢查并安裝依賴(自動處理未安裝的包)
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple || \{ echo "Failed to install some packages. Retrying with --upgrade..." && \pip install --no-cache-dir --upgrade -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple; }# 復制應用代碼
COPY . .# 添加健康檢查(驗證Python環境)
HEALTHCHECK --interval=30s --timeout=10s \CMD python -c "import sys; from pkg_resources import require; require(open('requirements.txt').read())" || exit 1CMD ["python", "/app/HsSignalQa/server.py"]
完成后,再進度docker build就可以了。