Was tun, wenn in Docker ein gcc-Fehler auftritt?

Überblick

Als ich versuchte, die neueste Version von "google-cloud-bigquery" in die neueste Version von python * alpine zu integrieren, schlug die Installation mit dem folgenden Fehler fehl. Als ich sie nach der Änderung wie "Dockerfile" machte, war sie sicher. Ich konnte es installieren.

Docker-Datei vor der Änderung

Dockerfile


FROM python:3.9.0-alpine3.12

RUN apk --update add \
    curl \
    bash

RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

COPY ./requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt
RUN curl -sSL https://sdk.cloud.google.com | bash
ENV PATH $PATH:/root/google-cloud-sdk/bin

RUN mkdir -p /src

FROM python:3.9.0-alpine3.12

RUN apk --update add \
    curl \
    gcc \
    musl-dev \
    linux-headers \
    build-base \
    libffi-dev \
    bash

RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

COPY ./requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt
RUN curl -sSL https://sdk.cloud.google.com | bash
ENV PATH $PATH:/root/google-cloud-sdk/bin
error: command 'gcc' failed: No such file or directory
fatal error: limits.h: No such file or directory
fatal error: ffi.h: No such file or directory

requirements.txt


google-cloud-bigquery==2.4.0

Geänderte Docker-Datei

Dockerfile


FROM python:3.9.0-alpine3.12

RUN apk --update add \
    curl \
    gcc \
    musl-dev \
    linux-headers \
    build-base \
    libffi-dev \
    bash

RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

COPY ./requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt
RUN curl -sSL https://sdk.cloud.google.com | bash
ENV PATH $PATH:/root/google-cloud-sdk/bin

RUN mkdir -p /src

FROM python:3.9.0-alpine3.12

RUN apk --update add \
    curl \
    gcc \
    musl-dev \
    linux-headers \
    build-base \
    libffi-dev \
    bash

RUN apk --update add tzdata && \
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

COPY ./requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt
RUN curl -sSL https://sdk.cloud.google.com | bash
ENV PATH $PATH:/root/google-cloud-sdk/bin


Recommended Posts

Was tun, wenn in Docker ein gcc-Fehler auftritt?
Was tun, wenn in bind.pry eine falsche Anzahl von Argumenten angezeigt wird?
Was tun, wenn Sie in Thymeleaf Layout eine groovige Warnung erhalten?
Was tun, wenn im Testcode der Steuereinheit in Rails der Fehler "302" angezeigt wird?
Was tun, wenn beim Versuch, mit Eclipse zu erstellen, ein Fehler in der gemeinsam genutzten JNI-Bibliothek auftritt?
Was tun, wenn Sie eine [HTTP-Anforderung hat zu lange gedauert] Fehler in Docker.
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
Was tun, wenn auf GitHub eine MiniMagick-Sicherheitsanfälligkeitswarnung angezeigt wird?
Was tun, wenn Sie versehentlich ein Modell erstellen?
Was tun, wenn Sie gem'bcrypt 'in Ihre Gemfile eingeben und bei der Bundle-Installation eine Fehlermeldung erhalten?
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?
Was tun, wenn beim Versuch, Eclipse unter Java 9 auszuführen, ein NoClassDefFoundError angezeigt wird?
Was tun, wenn die Meldung "Ein Server läuft bereits" angezeigt wird. Fehler beim Versuch, den Rails-Server zu starten
Was tun, wenn eine javax.net.ssl.SSLHandshakeException angezeigt wird: Remote-Host hat während des Handshakes im IBM JDK die Verbindung geschlossen
Was tun, wenn Sie die Mastertabelle nach dem Importieren eines Projekts in Eclipse nicht in einer Datei speichern konnten?
Was tun, wenn Sie sich über OpenSSL mit pyenv install ärgern?
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
[Java] Was tun, wenn in Eclipse die Fehlermeldung "Nicht zulässig auf Quellenebene unter 1.X" angezeigt wird?
Was tun, wenn ein Argumentfehler auftritt? Falsche Anzahl von Argumenten (gegeben 2, erwartete 0) in Ihrem RSpec-Test
Was tun, wenn beim Abrufen von Rails datetime_field die Fehlermeldung "Bitte geben Sie einen gültigen Wert ein" angezeigt wird?
Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" angezeigt wird? Beim Starten des Rails-Servers
[Lösung] Was tun, wenn ein Docker-Fehler angezeigt wird? FEHLER: Unter Unix: ///var/run/docker.sock kann keine Verbindung zum Docker-Dämon hergestellt werden. Wird der Docker-Dämon ausgeführt?
Was tun, wenn die Fehlermeldung angezeigt wird, dass keine gültige Basis für Repo gefunden werden kann, wenn Sie im udemy-Kurs mit CentOS7 das Docker yum -y install verwenden?
Was tun, wenn Sie falsche Informationen eingeben?
So erstellen Sie ein Glas mit dem alten Hadoop (hadoop-core-0.20.2-cdh3u6) in Gradle: (Was tun, wenn Sie ZIP nicht erweitern können?)
Was tun, wenn Sie in Eclipse eine JRE auswählen und "Die ausgewählte JRE unterstützt die aktuelle Konformitätsstufe 11 nicht" erhalten?
Was tun, wenn Sie sich über "FEHLER: Es gibt keine Szenarien; muss mindestens eines haben" ärgern, obwohl Sie Garn in Docker hätten eingeben sollen
Was tun, wenn Sie Gemfile oder .bundle / directory nicht finden konnten?
Was tun, wenn ein ActionController :: UnknownFormat-Fehler auftritt?
Was tun, wenn das von refile gepostete Bild nach dem Einstellen der 404-Fehlerseite in Rails verschwindet?
Was tun, wenn Um die fehlende Version zu installieren, führen Sie `gem install bundler: 2.1.4` aus
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Was tun, wenn in CircleCI der Fehler zu lang ohne Ausgabe (über 10 m0s) angezeigt wird?
Was tun, wenn Sie aktiviert haben? Verwenden Sie die WSL2-basierte Engine in Docker Desktop mit unzureichender WSL2-Installation
So übersetzen Sie die Fehlermeldung ins Japanische (Was tun, wenn Sie sich aus irgendeinem Grund nicht anmelden können)
Was ist zu tun, wenn Fehler / Fehler: Datei erforderlich.expand_path ('../ config / environment', __dir__) in RSpec angezeigt wird
Was tun, wenn der Befehl Rails unbrauchbar wird?
[Rails] Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden?" Angezeigt wird, wenn der Befehl "Rails" in Catalina ausgeführt wird
Was tun, wenn in Rails 6.0 die Warnung "Der Eindeutigkeitsprüfer erzwingt in Rails 6.1 keinen Vergleich zwischen Groß- und Kleinschreibung mehr erzwingt" angezeigt wird
[Rails] Was tun, wenn Sie versehentlich eine Bundle-Installation in einer Produktionsumgebung in Ihrer lokalen Umgebung durchführen?
Was tun, wenn Sie die Listen-Adresse im Einstellungsbildschirm des Dockers Mattermost ändern?