问题描述
我正在使用下面的 dockerfile 来构建图像.
I am using the below dockerfile to build an image .
FROM <custom registry>/python:alpine3.7 # Copy local code to the container image. ENV APP_HOME app WORKDIR $APP_HOME COPY . . #RUN pip install versioneer RUN pip install Flask google-auth google-cloud-storage numpy datetime pandas sklearn ENV PORT 8080 CMD ["python", "app_hello.py"]
当我尝试进行 docker build 时,它给了我以下错误
When I tried to do a docker build it gave me the below error
File "setup.py", line 37, in <module> import versioneer ModuleNotFoundError: No module named 'versioneer' ---------------------------------------- Command "/usr/local/bin/python /usr/local/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmp8gvrvde_" failed with error code 1 in /tmp/pip-install-s551_g8p/numpy
我也尝试安装 versioneer,但没有成功.我在这里错过了什么?
I tried to install versioneer as well , but it did not work. What am I missing here ?
推荐答案
命令/usr/local/bin/python/usr/local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process.py get_requires_for_build_wheel/tmp/tmp8gvrvde"失败,错误代码 1 在/tmp/pip-install-s551_g8p/numpy
Command "/usr/local/bin/python /usr/local/lib/python3.7/site-packages/pip/_vendor/pep517/in_process.py get_requires_for_build_wheel /tmp/tmp8gvrvde" failed with error code 1 in /tmp/pip-install-s551_g8p/numpy
构建numpy时出现该错误,这表明您需要升级pip才能使其工作:
The error happens when build numpy, and this indicates you need to upgrade pip to make it work:
pip install --upgrade pip
另外,您需要安装编译器以使用 next 进行构建:
Additional, you need install compiler for build with next:
apk add build-base
有了上面的例子,接下来是一个可行的 Dockerfile 示例:
With above, a sample workable Dockerfile as next:
FROM python:alpine3.7 RUN pip install --upgrade pip; apk add build-base; pip install numpy RUN python -c "import numpy; print(numpy.__version__)"
输出:
$ docker build -t abc:1 . Sending build context to Docker daemon 2.048kB Step 1/3 : FROM python:alpine3.7 ---> 00be2573e9f7 Step 2/3 : RUN pip install --upgrade pip; apk add build-base; pip install numpy ---> Running in bba4eed0d626 Collecting pip Downloading http://www.51sjk.com/Upload/Articles/1/0/341/341885_20230131091844485.whl (1.6MB) Installing collected packages: pip Found existing installation: pip 19.0.1 Uninstalling pip-19.0.1: Successfully uninstalled pip-19.0.1 Successfully installed pip-21.2.2 ... Collecting numpy Downloading numpy-1.21.1.zip (10.3 MB) ... Successfully built numpy Installing collected packages: numpy Successfully installed numpy-1.21.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: http://www.51sjk.com/Upload/Articles/1/0/341/341885_20230131091911143.jpg Removing intermediate container bba4eed0d626 ---> 6e11968fe036 Step 3/3 : RUN python -c "import numpy; print(numpy.__version__)" ---> Running in 0f4c47db07cd 1.21.1 Removing intermediate container 0f4c47db07cd ---> f189962ad246 Successfully built f189962ad246 Successfully tagged abc:1