在 amazonlinux docker 图像上安装 python3.6

install python3.6 on amazonlinux docker image

我一直在尝试用 python3.6 基于亚马逊linux 创建一个 docker 图片。 到目前为止,我还不是很成功。我用

docker run -it amazonlinux

启动交互式 docker 终端。在终端内,我 运行 "yum install python36" 并看到以下错误消息。请注意,我从一个旧的基于 amazonlinux 的 Dockerfile 复制了这一步。这个 Dockerfile 曾经工作过。所以我暂停了我在下面看到的错误是由于亚马逊更新了他们的 docker linux 图片

bash-4.2# yum install python36
Loaded plugins: ovl, priorities
amzn2-core       | 2.4 kB  00:00:00     
No package python36 available.
Error: Nothing to do

我尝试按照此 post 添加 python3.6 回购 https://janikarhunen.fi/how-to-install-python-3-6-1-on-centos-7 然而,当我 运行

时它仍然给出相同的错误
yum install python36u

有什么方法可以将python3.6 添加到亚马逊linux 基础层吗?提前致谢。

你可以检查这个 Dockerfile 基于亚马逊 Linux 并且 python 版本是 PYTHON_VERSION=3.6.4.

或者您可以使用现有的

ARG PYTHON_VERSION=3.6.4
ARG BOTO3_VERSION=1.6.3
ARG BOTOCORE_VERSION=1.9.3
ARG APPUSER=app

RUN yum -y update &&\
    yum install -y shadow-utils findutils gcc sqlite-devel zlib-devel \
                   bzip2-devel openssl-devel readline-devel libffi-devel && \
    groupadd ${APPUSER} && useradd ${APPUSER} -g ${APPUSER} && \
    cd /usr/local/src && \
    curl -O 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 && make altinstall && \
    rm -rf /usr/local/src/Python-${PYTHON_VERSION}* && \
    yum remove -y shadow-utils audit-libs libcap-ng && yum -y autoremove && \
    yum clean all

但最好克隆存储库并制作您自己的图像。

多亏了 aws 'extras',这个问题现在有了更简单的答案。现在这将起作用:

amazon-linux-extras install python3

我也遇到了 docker 的类似问题。

百胜安装docker

已加载的插件:ovl、优先级 amzn2-核心 | 3.7 KB 00:00:00 没有可用的软件包 docker。 错误:无事可做

yum 我用的是 amazon-linux-extras,效果很好

亚马逊-linux-额外安装docker