Dockerfile-找不到满足serverlessrepo == 0.1.5要求的版本

时间:2019-07-26 18:28:40

标签: docker dockerfile aws-sam-cli aws-sam

以下是aws sam的Dockerfile:

FROM buildpack-deps:stable
ARG PYTHON_VERSION=3.7.4


# Update and allow for apt over HTTPS
RUN apt-get update && \
  apt-get install -y apt-utils
RUN apt-get install -y apt-transport-https

# download and build Python 3.7, install basic Python libraries
# (this predates pipenv so a mixture of dependencies)
ADD requirements.txt /requirements.txt
RUN cd /usr/src && \
  wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz && \
  tar xzf Python-${PYTHON_VERSION}.tgz && \
  cd Python-${PYTHON_VERSION} && \
  ./configure --enable-optimizations && \
  make altinstall && \
  apt-get install -y python3-pip && \
  pip3 install -r /requirements.txt

RUN pip3 install awscli --upgrade --user && \
    pip3 install --user aws-sam-cli

出现错误的

ERROR: Could not find a version that satisfies the requirement serverlessrepo==0.1.5 (from aws-sam-cli) (from versions: 0.1.6, 0.1.7, 0.1.8, 0.1.9)
ERROR: No matching distribution found for serverlessrepo==0.1.5 (from aws-sam-cli)

The command '/bin/sh -c pip3 install awscli --upgrade --user &&     pip3 install --user aws-sam-cli' returned a non-zero code: 1

如何安装serverlessrepo版本0.1.5?

2 个答案:

答案 0 :(得分:1)

它不适用于python3。检出this

您需要安装Python2.7, 3.6, or 3.7

更多信息here

希望这会有所帮助。

答案 1 :(得分:1)

SAM CLI supports Python2.7、3.6和3.7以及docker映像随附python3.5。 解决方法可以是以下内容,也可以从基本docker映像更新基本版本。

FROM buildpack-deps:stable

# Update and allow for apt over HTTPS
RUN apt-get update && \
  apt-get install -y apt-utils
RUN apt-get install -y apt-transport-https

# Install python3
RUN apt-get update \
  && apt-get install -y python3-pip python3-dev \
  && cd /usr/local/bin \
  && ln -s /usr/bin/python3 python \
  && pip3 install --upgrade pip

RUN pip3 install awscli --upgrade --user 
RUN python --version
RUN apt-get install python-pip  -y
RUN python2.7 -m pip install aws-sam-cli

更新: 基本图片已更改为buildpack-deps:buster

FROM buildpack-deps:buster
# Update and allow for apt over HTTPS
RUN apt-get update && \
  apt-get install -y apt-utils
RUN apt-get install -y apt-transport-https
RUN apt update -y 
RUN apt install python3-pip -y
RUN pip3 install awscli --upgrade --ignore-installed six
RUN python3.7 -m pip install aws-sam-cli
RUN  rm /usr/bin/python
RUN ln -s /usr/bin/python3.7 /usr/bin/python

enter image description here