Версия python, вызывающая проблемы при сборке Docker - PullRequest
1 голос
/ 08 мая 2020

Я бы хотел избежать следующей ошибки. каким должен быть правильный способ сделать это. Я мог бы попытаться исправить это, используя 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

1 Ответ

1 голос
/ 08 мая 2020

Будет ли оно рассчитано на будущее?

Нет. Срок действия Python 2 уже истек. Не будут исправлены ошибки и проблемы безопасности не будут устранены. Вы должны обновить свое приложение до Python 3, в идеале до даты окончания жизненного цикла Python 2 1 января 2020 года (четыре месяца a go).

С точки зрения отображаемого Dockerfile , Я бы избегал очень конкретных c ограничений версии, как у вас. Использование последней версии пакетов в конкретном выпуске c дистрибутива Linux обычно безопасно (код, протестированный на Python 2.7.16-r3, почти наверняка будет нормально работать на Python 2.7.18-r0). Вы можете выбрать более конкретное распределение c в строке FROM вашего изображения (например, FROM node:14-alpine3.11), чтобы минимизировать неожиданности.

...