Reputation: 5094
I am trying to build a docker image of python using the following dockerfile: I'm looking to have the smallest image so I use elyase/conda:2.7 image as a base:
# 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
After running the command:
docker build -t repository.test .
I get this error:
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
I can't figure out how to install there packages that are necessary for my application
Upvotes: 0
Views: 1026
Reputation: 11615
You are now using an old image elyase/conda:2.7 which references http://downloads.openwrt.org/snapshots/trunk/x86_64/generic/packages, but looks like it's now http://downloads.openwrt.org/snapshots/trunk/x86/64/packages.
You need to fix this URL in /etc/opkg.conf
Here is a Dockerfile for a relatively small image (105M) that should almost do the job:
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/*
You can adapt it to install any other lib you need, or install numpy with pip, so you won't have python and you will be able just use pyrun
like you did before.
Upvotes: 1
Reputation: 11615
Unknown package 'awscli'.
Unknown package 'python-botocore'.
=> Pretty clear: 'awscli' and 'python-botocore' are not available openwrt packages, you should install them with pip I guess
Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] unknown error (_ssl.c:661) -- Some packages may not be found!
=> Alpine 3.3, Python 2.7.11, urllib2 causing SSL: CERTIFICATE_VERIFY_FAILED: you need to install the opkg package ca-certificates
.
But, then it will fails because it will try to build C-code so you have to install python headers and co.
Upvotes: 0