我正在尝试使用awscli
(根据亚马逊的推荐)在pip
的自定义Docker镜像中安装FROM library/node:6.11.2
。这是一个复制品:
FROM library/node:6.11.2
RUN apt-get update && \
apt-get install -y \
python \
python-pip \
python-setuptools \
groff \
less \
&& pip --no-cache-dir install --upgrade awscli \
&& apt-get clean
CMD ["/bin/bash"]
但是,上面我遇到了:
no such option: --no-cache-dir
大概是因为我有不正确的Python和/或Pip版本?
我正在以与FROM maven:3.5.0-jdk-8
类似的方式安装Python,Pip和awscli,并且它工作得很好。我不确定两个图像之间的相关差异是什么。
从我的Dockerfile中删除所述选项对我也没有好处,因为那时我遇到了大量不同的错误,这里有一段摘录:
Installing collected packages: awscli, PyYAML, docutils, rsa, colorama, botocore, s3transfer, pyasn1, jmespath, python-dateutil, futures, six
Running setup.py install for PyYAML
checking if libyaml is compilable
### ABBREVIATED ###
ext/_yaml.c:4:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
### ABBREVIATED ###
结论:您如何在基于awscli
的图片中正确安装library/node:6.x
?
答案 0 :(得分:13)
根据this other answer添加python-dev
有效,但会抛出惊人数量的编译器警告(错误?),所以我选择了@SergeyKoralev's answer的变体,需要在它之前进行一些调整工作
以下是我需要做出的改变:
python3
和pip3
。pip
本身。awscli
安装分开在单独的RUN
命令中。以下是 似乎有效的完整复制品:
FROM library/node:6.11.2
RUN apt-get update && \
apt-get install -y \
python3 \
python3-pip \
python3-setuptools \
groff \
less \
&& pip3 install --upgrade pip \
&& apt-get clean
RUN pip3 --no-cache-dir install --upgrade awscli
CMD ["/bin/bash"]
如果在升级pip之后刷新内容的安装之前添加shell命令,则可以将aws
安装保留在同一RUN
层中。不知道怎么回事。
答案 1 :(得分:4)
正如您已正确说明的那样,serve_forever()
在您使用的泊坞窗图片上安装的版本较旧,不支持pip
。你可以尝试更新它,或者你也可以解决第二个问题,即缺少python源头。这可以通过安装--no-cache-dir
包来解决。只需将其添加到Dockerfile中安装的软件包列表中:
python-dev
然后,您可以运行FROM library/node:6.11.2
RUN apt-get update && \
apt-get install -y \
python \
python-dev \
python-pip \
python-setuptools \
groff \
less \
&& pip install --upgrade awscli \
&& apt-get clean
CMD ["/bin/bash"]
,这应该在您的路径上。
答案 2 :(得分:2)
您的图片基于Debian Jessie,因此您正在安装Python 2.7。尝试使用Python 3.x:
PARTITION_YEAR=2017/PARTITION_MONTH=07/PARTITION_DAY=12
答案 3 :(得分:0)
所有答案都是关于 aws-cli 版本 1,如果您想要版本 2,请尝试以下
FROM node:lts-stretch-slim
RUN apt-get update && \
apt-get install -y \
unzip \
curl \
&& apt-get clean \
&& curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
&& unzip awscliv2.zip \
&& ./aws/install \
&& rm -rf \
awscliv2.zip \
&& apt-get -y purge curl \
&& apt-get -y purge unzip
CMD ["/bin/bash"]
答案 4 :(得分:-1)
尝试安装python devel:
yum install python-devel or dnf install python-devel
取决于您的包管理器。