Que faire si vous obtenez une erreur gcc dans Docker

Aperçu

Quand j'ai essayé de mettre la dernière version de google-cloud-bigquery dans la dernière version de python * alpine, l'installation a échoué avec l'erreur suivante. Enfin, quand je l'ai fait comme` Dockerfile après modification, c'était sûr. J'ai pu l'installer.

Dockerfile avant modification

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

Dockerfile modifié

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

Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si vous créez accidentellement un modèle
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si mysql2 obtient une erreur d'installation de bundle
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si vous obtenez une exception javax.net.ssl.SSLHandshakeException: connexion de l'hôte distant fermée pendant l'établissement de liaison dans IBM JDK
Que faire si vous obtenez Impossible d'enregistrer la table principale dans un fichier après l'importation d'un projet dans Eclipse
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
[Java] Que faire si vous obtenez une erreur dans Eclipse disant "Non autorisé au niveau source inférieur à 1.X"
Que faire si vous obtenez une erreur d'argument: nombre incorrect d'arguments (donné 2, attendu 0) dans votre test RSpec
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
[Solution] Que faire si vous obtenez une erreur Docker "ERREUR: Impossible de se connecter au démon Docker sous unix: ///var/run/docker.sock. Le démon docker est-il en cours d'exécution?"
Que faire si vous obtenez une erreur indiquant Impossible de trouver un baseurl valide pour le dépôt lorsque vous utilisez le menu fixe yum -y install dans le cours udemy à l'aide de CentOS7
Que faire si vous transmettez des informations incorrectes
Comment faire un pot avec l'ancien Hadoop (hadoop-core-0.20.2-cdh3u6) dans Gradle: (Que faire si vous obtenez Impossible de développer ZIP ..)
Que faire si vous sélectionnez un JRE dans Eclipse et obtenez "Le JRE sélectionné ne prend pas en charge le niveau de conformité actuel 11"
Que faire si vous êtes en colère contre "ERREUR: Il n'y a pas de scénario; doit en avoir au moins un" même si vous auriez dû saisir le fil dans Docker
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si une erreur ActionController :: UnknownFormat se produit
Que faire si l'image publiée par refile disparaît après avoir défini la page d'erreur 404 dans Rails
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
Que faire si vous avez activé Utiliser le moteur basé sur WSL2 dans Docker Desktop avec une installation WSL2 insuffisante
Comment traduire le message d'erreur en japonais (que faire si vous ne pouvez pas vous connecter pour une raison quelconque)
Que faire si Failure / Error: require File.expand_path ('../ config / environment', __dir__) apparaît dans RSpec
Que faire si la commande rails devient inutilisable
[Rails] Que faire si vous obtenez une erreur indiquant "Impossible de trouver un moteur d'exécution JavaScript." Lors de l'exécution de la commande rails dans Catalina
Que faire si vous recevez l'avertissement «Le validateur d'unicité n'appliquera plus la comparaison sensible à la casse dans Rails 6.1.» Dans Rails 6.0
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
Que faire si vous modifiez l'adresse d'écoute à partir de l'écran des paramètres dans le menu fixe Mattermost