python - 在 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
解决方案
它会成为未来的证明吗?
不 ,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
)以最大程度地减少意外。