无法生成python docker imag

2024-06-26 13:09:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用以下dockerfile构建python的docker映像: 我希望有最小的图像,所以我使用elyase/conda:2.7图像作为基础:

 # Pull base image.
FROM elyase/conda:2.7
MAINTAINER me
RUN opkg-install --verbosity=4 curl python-dateutil python-botocore && \
    curl --no-verify-ssl https://bootstrap.pypa.io/get-pip.py && \
    python get-pip.py && \
    pip install --upgrade --user awscli && \
    pip install boto3 chardet patool

运行命令后:

^{pr2}$

我得到这个错误:

Sending build context to Docker daemon 26.11 kB
Step 1/10 : FROM elyase/conda:2.7
 ---> 4abdba6a4c51
Step 2/10 : MAINTAINER me
 ---> Using cache
 ---> 54b7c51ab2b9
Step 3/10 : VOLUME /tmp
 ---> Using cache
 ---> 491cf0da6c97
Step 4/10 : VOLUME /efs-script-import-tmp
 ---> Using cache
 ---> 1b3167c560e7
Step 5/10 : RUN opkg-install --verbosity=4 curl python-dateutil python-botocore &&     curl --no-verify-ssl https://bootstrap.pypa.io/get-pip.py &&     python get-pip.py &&     pip install --upgrade --user awscli &&     pip install boto3 chardet patool
 ---> Running in 009d37b86f48
wget: server returned error: HTTP/1.1 404 Not Found
wget: server returned error: HTTP/1.1 404 Not Found
Downloading http://downloads.openwrt.org/snapshots/trunk/x86_64/generic/packages/base/Packages.gz.
Downloading http://downloads.openwrt.org/snapshots/trunk/x86_64/generic/packages/packages/Packages.gz.
Collected errors:
 * opkg_download: Failed to download http://downloads.openwrt.org/snapshots/trunk/x86_64/generic/packages/base/Packages.gz, wget returned 1.
 * opkg_download: Failed to download http://downloads.openwrt.org/snapshots/trunk/x86_64/generic/packages/packages/Packages.gz, wget returned 1.
opkg_conf_parse_file: Loading conf file /etc/opkg.conf.
pkg_hash_load_feeds: 
pkg_hash_load_status_files: 
pkg_vec_insert_merge: Adding new pkg=terminfo version=5.9 arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=libc version=0.9.33.2 arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=bash version=4.3.30 arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=bzip2 version=1.0.6 arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=libgcc version=4.8-linaro arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=libncurses version=5.9 arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=zlib version=1.2.8 arch=x86_64.
pkg_vec_insert_merge: Adding new pkg=libbz2 version=1.0.6 arch=x86_64.
opkg_install_cmd: curl
opkg_install_cmd: python-dateutil
opkg_install_cmd: python-botocore
pkg_info_preinstall_check: Updating file owner list.
**Unknown package 'curl'.
Unknown package 'python-dateutil'.**
**Unknown package 'python-botocore'.**
opkg_configure_packages: Configuring unpacked packages.
opkg_configure_packages: Reordering packages before configuring them...
opkg_recurse_pkgs_in_order: pkg terminfo.
opkg_recurse_pkgs_in_order: Descending on pkg libc.
opkg_recurse_pkgs_in_order: pkg libc.
opkg_recurse_pkgs_in_order: Descending on pkg libgcc.
opkg_recurse_pkgs_in_order: pkg libgcc.
opkg_recurse_pkgs_in_order: pkg libc already visited, skipping.
opkg_recurse_pkgs_in_order: pkg bash.
opkg_recurse_pkgs_in_order: Descending on pkg libc.
opkg_recurse_pkgs_in_order: pkg libc already visited, skipping.
opkg_recurse_pkgs_in_order: Descending on pkg libncurses.
opkg_recurse_pkgs_in_order: pkg libncurses.
opkg_recurse_pkgs_in_order: Descending on pkg libc.
opkg_recurse_pkgs_in_order: pkg libc already visited, skipping.
opkg_recurse_pkgs_in_order: Descending on pkg terminfo.
opkg_recurse_pkgs_in_order: pkg terminfo already visited, skipping.
opkg_recurse_pkgs_in_order: pkg bzip2.
opkg_recurse_pkgs_in_order: Descending on pkg libc.
opkg_recurse_pkgs_in_order: pkg libc already visited, skipping.
opkg_recurse_pkgs_in_order: Descending on pkg libbz2.
opkg_recurse_pkgs_in_order: pkg libbz2.
opkg_recurse_pkgs_in_order: Descending on pkg libc.
opkg_recurse_pkgs_in_order: pkg libc already visited, skipping.
opkg_recurse_pkgs_in_order: pkg libgcc already visited, skipping.
opkg_recurse_pkgs_in_order: pkg libncurses already visited, skipping.
opkg_recurse_pkgs_in_order: pkg zlib.
opkg_recurse_pkgs_in_order: Descending on pkg libc.
opkg_recurse_pkgs_in_order: pkg libc already visited, skipping.
opkg_recurse_pkgs_in_order: pkg libbz2 already visited, skipping.
write_status_files_if_changed: Nothing to be done.
hash_table: pkg-hash, 24576 bytes
    n_buckets=1024, n_elements=8, n_collisions=0
    max_bucket_len=0, n_used_buckets=8, ave_bucket_len=1.00
    n_hits=10, n_misses=14
hash_table: file-hash, 24576 bytes
    n_buckets=1024, n_elements=60, n_collisions=2
    max_bucket_len=1, n_used_buckets=58, ave_bucket_len=1.03
    n_hits=0, n_misses=60
hash_table: obs-file-hash, 1536 bytes
    n_buckets=64, n_elements=0, n_collisions=0
    max_bucket_len=0, n_used_buckets=0, ave_bucket_len=0.00
    n_hits=0, n_misses=0
Collected errors:
 * opkg_install_cmd: Cannot install package curl.
 * opkg_install_cmd: Cannot install package python-dateutil.**
 * opkg_install_cmd: Cannot install package python-botocore.
/bin/sh: curl: not found**
The command '/bin/sh -c opkg-install --verbosity=4 curl python-dateutil python-botocore &&     curl --no-verify-ssl https://bootstrap.pypa.io/get-pip.py &&     python get-pip.py &&     pip install --upgrade --user awscli &&     pip install boto3 chardet patool' returned a non-zero code: 127

我不知道如何安装我的应用程序所需的那些软件包


Tags: installpipinonpackagesorderpkgcurl
2条回答

您现在使用的是一个旧图像elyase/conda:2.7,它引用了http://downloads.openwrt.org/snapshots/trunk/x86_64/generic/packages,但看起来它现在是{a3}。在

您需要在/etc/opkg.conf中修复此URL

下面是一个相对较小的图像(105M)的Dockerfile,它几乎可以完成任务:

FROM alpine

# Runtime packages
RUN apk add  no-cache py-numpy sqlite-libs \
# Build packages
 && apk add  no-cache  virtual .build-deps \
          py-pip \
          musl-dev g++ python-dev py-numpy-dev \
          ca-certificates \
# Runtime pip packages
 && pip install boto3 chardet patool \
# Pandas
 && pip install pandas \
# Cleaning
 && apk del .build-deps \
 && rm -rf /root/.cache/ /var/cache/misc/*

您可以调整它来安装您需要的任何其他lib,或者使用pip安装numpy,这样您就没有python了,您可以像以前一样使用pyrun。在

Unknown package 'awscli'.
Unknown package 'python-botocore'.

python'should'clear'packages'

^{pr2}$

=>;Alpine 3.3, Python 2.7.11, urllib2 causing SSL: CERTIFICATE_VERIFY_FAILED:您需要安装opkg包ca-certificates。在

但是,它将失败,因为它将尝试构建C代码,因此您必须安装python头和co

相关问题 更多 >