根本原因

根本原因

私のDockerfileは次のようになります。

FROM python:3.9-slim-bullseye


RUN apt-get update && apt-get install \
    --no-install-recommends -qq -y \
    apt-utils \
    poppler-utils \
    libjpeg-dev \
    libcairo2-dev \
    pdftk \
    ghostscript \
    autoconf-archive \
    pkg-config \
    libpng-dev \
    libtiff5-dev \
    zlib1g-dev \
    imagemagick \
    wget \
    procps \
    curl \
    locales \
    libicu-dev \
    libpango1.0-dev \
    g++ \
    make \
    tesseract-ocr \
    tesseract-ocr-por \
    tesseract-ocr-osd

マイコンピュータ(Ubuntu 20.04およびDockerバージョン19.03.10)でビルドできますが、sudo docker build -t foo .Travis CIでは同じことはできません。

Errors were encountered while processing:
 libpaper1:amd64
 libgs9:amd64
 ghostscript
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt-get update && apt-get install     --no-install-recommends -qq -y     apt-utils     poppler-utils     libjpeg-dev     libcairo2-dev     pdftk     ghostscript     autoconf-archive     pkg-config     libpng-dev     libtiff5-dev     zlib1g-dev     imagemagick     wget     procps     curl     locales     libicu-dev     libpango1.0-dev     g++     make     tesseract-ocr     tesseract-ocr-por     tesseract-ocr-osd     libc6     libgs9     ucf     libpaper1' returned a non-zero code: 100

libpaper1のいくつかのログ:

Setting up libpaper1:amd64 (1.1.28+b1) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Creating config file /etc/papersize with new version
stat: cannot statx '/etc/papersize.dpkg-inst': Operation not permitted
dpkg: error processing package libpaper1:amd64 (--configure):
 installed libpaper1:amd64 package post-installation script subprocess returned error exit status 1

libgs9のいくつかのログ:

dpkg: error processing package libgs9:amd64 (--configure):
 dependency problems - leaving unconfigured

Ghostscriptのいくつかのログ:

dpkg: dependency problems prevent configuration of ghostscript:
 ghostscript depends on libgs9 (= 9.53.3~dfsg-7+deb11u1); however:
  Package libgs9:amd64 is not configured yet.

私は成功せずに次のことを試しました。

RUN dpkg --configure -a && apt-get -f install

そして:

RUN apt-get clean && apt-get update && apt-get install --fix-broken

RUN apt-get install --assume-yes --no-install-recommends -qq \

私の一部.travis.yaml

jobs:
  include:
    - stage: Build temporary docker image
      services:
        - docker
      language: minimal
      if: type = pull_request AND branch = master
      script:
        - source ci_scripts/gcloud_setup.sh
        - gcloud docker -- pull gcr.io/foo/bar
        - docker build --cache-from gcr.io/foo/bar:latest -t bar_temp .
        - docker tag bar_temp gcr.io/foo/bar
        - gcloud docker -- push gcr.io/foo/bar

ここで何か抜けましたか?エラーなしでこれらのパッケージをインストールするにはどうすればよいですか?

ベストアンサー1

根本原因

簡単に言うとlibpaper1、今日現在travisで使用されているデフォルトのドッカーバージョンの一部の構成段階でパッケージが破損しています。

インストールに失敗した構成手順の問題は、libpaper1およびで発生します。 On dockerはdocker 18.04にホワイトリストに登録されています。statxlibseccompstatxlibseccomp

https://github.com/moby/moby/pull/36417

しかし、これだけでは問題を完全に説明することはできません。今日から、docker --versiontravisステータスは18.06.0-cestatxをホワイトリストに追加する必要がありますが、まだ原因が見つからないという問題があります。

ただし、Dockerイメージのバージョンをアップグレードすると問題が解決する可能性があります。

解決策

TravisでDockerのバージョンを変更すると、フィックスとインストールstatxの問題が修正されました。libpaper1ghostscript

ファイルに次のコンテンツを追加します.travis.yml

# Need docker-ce 20 instead of docker-ce 18 for installing ghostscript/libpaper1 on debian:bullseye
# https://docs.travis-ci.com/user/docker/#installing-a-newer-docker-version
before_install:
   - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
   - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
   - sudo apt-get update
   - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce

https://docs.travis-ci.com/user/docker/#installing-a-newer-docker-version

工藤https://github.com/florentx調べる

おすすめ記事