LoginSignup
0
0

Dockerビルド時にFailed to build backports.zoneinfoとエラーが出てしまう

Posted at

はじめに

Dockerを使って環境構築を行っていたところ、pip3 install -r requirements.txtでエラーが出てしまったので、その解決方法を備忘録として残します。

環境

Python 3.8.10
pip 23.2.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

エラーコード

Failed to build backports.zoneinfo
ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects
failed to solve: executor failed running [/bin/sh -c pip3 install -r requirements.txt]: exit code: 1

調べた記事によると、backports.zoneinfoモジュールはPython3.9以上のバージョンはサポートしていないためエラーが発生するそうですが、私の環境はPython3.8.10だったのでこの方法では解決できず、、、。

解決方法

結論から先に伝えますとbuild-essentialというメタパッケージがインストールされていなかったため、エラーが出ていました。
ですので、build_essentialをインストールすることで解決しました。

apt-get install build-essential

Dockerfile

僕の環境の場合は、以下のように記述することで解決しました。

FROM ubuntu:20.04

(省略)

# apt-get
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    # ↓を追加
    build-essential \
    curl \
    git \
    python3 \
    python3-pip \
    wget \

(省略)

build-essentialってなんなの?

build-essentialは、DebianベースのUbuntuなどにおいて、ソフトウェアをビルドするために必要なパッケージを集めたメタパッケージです。
このパッケージには、以下の主要なパッケージが含まれています。

  • GNU デバッガー
  • GNU コンパイラ
  • make(プロジェクトのビルド自動化ツール)

簡単にまとめると、build-essentialはソースコードからプログラムやライブラリをコンパイルする基本的なツールを提供しており、Debianパッケージの構築に必須とされるパッケージが含まれています。
今回は、Debianパッケージの構築に必須のパッケージが入っていなかったため、エラーが出ていました。

終わりに

Debianベース(Ubuntu)の環境構築を行う際は、build-essentialのインストールを忘れないように!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0