直到大约一周前,我还在像这样的 java 图像上成功使用 python 3.6 脚本:
FROM openjdk:7-jre-alpine
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
&& apk add --no-cache --virtual=build-dependencies unzip \
&& apk add --no-cache curl \
&& apk add --no-cache go
RUN apk add --no-cache python3 && \
python3 -m ensurepip && \
rm -r /usr/lib/python*/ensurepip && \
pip3 install --upgrade pip setuptools && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3
/usr/bin/python; fi && \
rm -r /root/.cache && \
pip install kubernetes
现在这个 dockerfile 失败了
&& apk add --no-cache bash \
我找到的唯一解决方案是注释掉构建依赖项并将它们引入:
&& echo -e "http://nl.alpinelinux.org/alpine/v3.5/main\nhttp://nl.alpinelinux.org/alpine/v3.5/community" > /etc/apk/repositories \
&& apk add --no-cache bash \
#&& apk add --no-cache --virtual=build-dependencies unzip \
此修复安装 python 版本 3.52 而不是 3.6
如何在 openjdk:7-jre-alpine 上安装 python 3.6 [或我想要的任何版本] jetty worker ?
更新: 现在所有的 Alpine 选项都失败了
最佳答案
在花了几个小时尝试了许多不同的选项之后,包括在多个版本中重新安装 docker。我设法让下面的 Dockefile 工作。请注意,我不得不重复构建几次。我的理论是我的 WIFI 或网络或 VPN 导致超时。在我的 mac 的本地 docker 存储库上成功构建之后,我尝试在 minikube 上使用 virtualbox vm 进行相同的构建,并且在重复相同的构建几次并注意到脚本中进一步发生错误后它起作用了。
这是 Dockerfile 的值(value):
FROM alpine:3.7
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
&& apk add --no-cache --virtual=build-dependencies unzip \
&& apk add --no-cache curl \
&& apk add --no-cache openjdk7-jre
RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache
RUN pip install kubernetes
关于java - 在 openjdk :7-jre-alpine docker how to install python 3. 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962999/