관리 메뉴

솜씨좋은장씨

[Docker] ubuntu:16.04 에서 deadsnakes PPA를 통한 Python 설치 지원 종료 및 해결 방법 본문

Programming/Docker

[Docker] ubuntu:16.04 에서 deadsnakes PPA를 통한 Python 설치 지원 종료 및 해결 방법

솜씨좋은장씨 2022. 1. 20. 18:34
728x90
반응형

👨🏻‍💻 발생한 에러

오늘 팀원 중에 한 분이 평소와 같이 작업한 api를 Docker Image로 빌드하고자

FROM ubuntu:16.04

ENV HOME /home

RUN mkdir -p ${HOME}

WORKDIR ${HOME}

## set OS
RUN apt update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt update
RUN apt install -y python3.7 python3.7-dev

## install app dependency
RUN apt update
ARG DEBIAN_FRONTEND=noninteractive
RUN apt install curl
RUN apt-get update
RUN apt install -y python3-pip
RUN apt-get update
RUN python3.7 -m pip install pip
RUN apt-get update
RUN python3.7 -m pip install --upgrade pip

------------------------------------이하 생략------------------------------------

위처럼 Dockerfile을 작성하고

ubuntu:16.04 환경에서 deadsnakes PPA를 활용하여 Python3.7 버전을 설치를 한 이미지를 빌드하려고 할 때

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python3.7
E: Couldn't find any package by glob 'python3.7'
E: Couldn't find any package by regex 'python3.7'
E: Unable to locate package python3.7-dev
E: Couldn't find any package by glob 'python3.7-dev'
E: Couldn't find any package by regex 'python3.7-dev'
The command '/bin/sh -c apt install -y python3.7 python3.7-dev' returned a non-zero code: 100

 

위와 같은 에러가 발생했습니다.

 

기존에 위와 같은 에러없이 잘 사용해오던 코드라 당황하였는데 원인이 따로 있었습니다.


👨🏻‍💻 에러가 발생하는 원인

먼저 에러가 발생한 가장 큰 원인은 2022년 1월 15일 부터

deadsnakes PPA 에서 더이상 ubuntu:16.04 버전에서의 사용을 지원하지 않는 다는 것 입니다.

이에 기존에 ubuntu:16.04로 작성되어있는 Dockerfile로 이미지를 빌드하려고하였을 때 

에러가 발생한 것이었습니다.

* 관련 이슈 : https://github.com/deadsnakes/issues/issues/195

 

No more support for Ubuntu 16.04 Xenial · Issue #195 · deadsnakes/issues

Adding this issue to hopefully reduce the number of issues that may come in about the recent change that the deadsnakes ppa is no longer supporting Ubuntu 16.04 Xenial for any python version. I bel...

github.com

* 22년 1월 15일 업데이트 후 deadsnakes PPA 가 지원하는 OS 버전

- Ubuntu 18.04 의 경우 

   - Python2.3 / Python2.6 / Python3.1 ~ 3.5 / Python3.7 ~ 3.11

- Ubuntu 20.04 의 경우

   - Python3.3 / Python3.7 / Python3.9 ~ 3.11

https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa 

 

New Python Versions : “deadsnakes” team

This PPA contains more recent Python versions packaged for Ubuntu. Disclaimer: there's no guarantee of timely updates in case of security problems or other issues. If you want to use them in a security-or-otherwise-critical environment (say, on a productio

launchpad.net


👨🏻‍💻 해결 방법

더이상 지원하지 않는 Ubuntu 16.04 버전 대신 지원하는 버전의 OS로 변경

FROM ubuntu:16.04 -> FROM ubuntu:18.04

위의 예시를 예로 들어 수정해보면 16.04를 18.04로 수정한 뒤에 다시 이미지 빌드를 시도했을 때

성공하는 것을 볼 수 있습니다.

FROM ubuntu:18.04

ENV HOME /home

RUN mkdir -p ${HOME}

WORKDIR ${HOME}

## set OS
RUN apt update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt update
RUN apt install -y python3.7 python3.7-dev

## install app dependency
RUN apt update
ARG DEBIAN_FRONTEND=noninteractive
RUN apt install curl
RUN apt-get update
RUN apt install -y python3-pip
RUN apt-get update
RUN python3.7 -m pip install pip
RUN apt-get update
RUN python3.7 -m pip install --upgrade pip

------------------------------------이하 생략------------------------------------

읽어주셔서 감사합니다. 

Comments