首页 > 解决方案 > 在 Docker 构建期间导致问题的 python 版本

问题描述

我想避免以下错误。什么应该是正确的方法。我可以尝试通过使用python2-2.7.18-r0而不是2.7.16-r3. 但问题是:它会成为未来的证明吗?

ERROR: unsatisfiable constraints:
  python2-2.7.18-r0:
    breaks: world[python=2.7.16-r3]
ERROR: Service 'frontend' failed to build: The command '/bin/sh -c apk add --no-cache make==4.2.1-r2 python=2.7.16-r3 g++=9.2.0-r4' returned a non-zero code: 1

这是我的 Dockerfile:

FROM node:current-alpine as app-builder
ARG NODE_ENV
ENV NODE_ENV ${NODE_ENV}

RUN apk add --no-cache make==4.2.1-r2 python=2.7.16-r3 g++=9.2.0-r4
RUN mkdir -p /app
WORKDIR /app

COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile

COPY . .
RUN yarn build

标签: pythondockerdocker-composedockerfiledevops

解决方案


它会成为未来的证明吗?

,Python 2 已经报废了。 它不会得到任何错误修复,安全问题也不会得到解决。您应该将您的应用程序升级到 Python 3,最好在 2020 年 1 月 1 日(四个月前)的 Python 2 终止日期之前。

就您展示的 Dockerfile 而言,我会避免像您一样非常具体的版本限制。在特定版本的 Linux 发行版中使用最新版本的软件包通常是安全的(在 Python 2.7.16-r3 上测试的代码几乎可以肯定在 Python 2.7.18-r0 上运行良好)。您可能希望在图像的FROM行中选择更具体的分布(例如,FROM node:14-alpine3.11)以最大程度地减少意外。


推荐阅读