neo000
Goto Top

Docker Image erstellen schlägt immer fehl

Hallo, ich versuche mit Bitbucket ein php-fpm Image zu erstellen wo Blackfire mit rein soll.

Leider schlägt mir die erstellung immer wieder fehl. Die Fehlermeldung ist so aussagekräftig, wie : Es ist ein Sack Reis umgefallen!

Hier mal mein Dockerfile:
FROM php:8.3.9-fpm-bullseye

ENV DEBIAN_FRONTEND noninteractive


RUN apt-get update && apt-get install -y \
        apt-utils \
        vim \
        wget \
        gnupg2 \
        gnupg \
        apt-transport-https \
        ca-certificates \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libwebp-dev \
        librdkafka-dev \
        libgmp-dev \
        libxml2-dev \
        ghostscript \
        imagemagick \
    && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
    && docker-php-ext-install -j$(nproc) \
        gd \
        mysqli \
        pdo_mysql \
        calendar \
        gmp \
        soap \
        imagick \
    && ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime \

RUN pecl install \
        trader \
        rdkafka \
    && docker-php-ext-enable  \
        trader \
        rdkafka \

RUN wget -q -O - https://packages.blackfire.io/gpg.key | dd of=/usr/share/keyrings/blackfire-archive-keyring.asc
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/blackfire-archive-keyring.asc] http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list   
RUN apt-get update
RUN apt-get install -y blackfire-agent blackfire-php

WORKDIR /var/www/html

ADD php.ini /usr/local/etc/php/conf.d/php.ini

Wenn ich den Blackfire Key mit apt-key -add verwende zum hinzufügen der Sources bekomme ich die Fehlermeldung "Deprtecated"

Wenn ich stattdessen die neue Variante nehme bekomme ich nur ein
process "/bin/sh -c apt-get update && apt-get install -y         apt-utils         vim         wget         gnupg2         gnupg         apt-transport-https         ca-certificates         libfreetype6-dev         libjpeg62-turbo-dev         libpng-dev         libwebp-dev         librdkafka-dev         libgmp-dev         libxml2-dev         ghostscript         imagemagick     && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp     && docker-php-ext-install -j$(nproc)         gd         mysqli         pdo_mysql         calendar         gmp         soap         imagick     && ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime RUN pecl install         trader         rdkafka     && docker-php-ext-enable          trader         rdkafka RUN wget -q -O - https://packages.blackfire.io/gpg.key | dd of=/usr/share/keyrings/blackfire-archive-keyring.asc" did not complete successfully: exit code: 1  

Habe testweise auf einem frischen Debian die neue Methode verwendet und da geht es problemlos. Somit bräuchte ich mal Hilfe von euch. Es fängt ja schon damit an, dass es nicht ersichtlich ist wo der Prozess hängt. Ich gehe davon aus das er den Key nicht hinzufügen kann??

Content-ID: 72569028112

Url: https://administrator.de/contentid/72569028112

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

Evolutio
Evolutio 19.07.2024 um 12:29:30 Uhr
Goto Top
Hi,

du hast mehre Probleme in deiner Dockerfile.

das erste: Imagick wird nicht richtig installiert - soweit ich weiß ist es noch nicht nativ mit PHP 8.3 kompatibel
Siehe auch hier: https://support.cpanel.net/hc/en-us/community/posts/19653628594071-Insta ...

das zweite: gcc fehlt um "trader" zu installieren

Wenn man die beiden Sachen behebt würde die Dockerfile wie folgt aussehen:
FROM php:8.3.9-fpm-bullseye

ENV DEBIAN_FRONTEND=noninteractive \
  IMAGICK_VERSION=3.7.0

RUN apt-get update && apt-get install -y \
  apt-utils \
  vim \
  wget \
  gnupg2 \
  gnupg \
  apt-transport-https \
  ca-certificates \
  libfreetype6-dev \
  libjpeg62-turbo-dev \
  libpng-dev \
  libwebp-dev \
  librdkafka-dev \
  libgmp-dev \
  libxml2-dev \
  ghostscript \
  libmagickwand-dev \
  gcc

# see: https://gist.github.com/Wirone/d5c794b4fef0203146a27687e80588a6
RUN curl -L -o /tmp/imagick.tar.gz https://github.com/Imagick/imagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz \
  && tar --strip-components=1 -xf /tmp/imagick.tar.gz \
  && phpize \
  && ./configure \
  && make \
  && make install \
  && echo "extension=imagick.so" > /usr/local/etc/php/conf.d/ext-imagick.ini \  
  && rm -rf /tmp/*

RUN docker-php-ext-install -j$(nproc) \
  gd \
  mysqli \
  pdo_mysql \
  calendar \
  gmp \
  soap

RUN ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

RUN pecl install \
  trader \
  rdkafka

RUN docker-php-ext-enable imagick \
  trader \
  rdkafka

RUN wget -q -O - https://packages.blackfire.io/gpg.key | dd of=/usr/share/keyrings/blackfire-archive-keyring.asc \
  && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/blackfire-archive-keyring.asc] http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list \  
  && apt update \
  && apt-get install -y blackfire-agent blackfire-php

WORKDIR /var/www/html

ADD php.ini /usr/local/etc/php/conf.d/php.ini

Um am Ende Speicherplatz zu sparen, kannst du alle Layer in einem zusammenführen wie du es am Anfang oder ich bei Blackfire gemacht habe.

Liebe Grüße
Neo000
Neo000 06.08.2024 um 09:28:35 Uhr
Goto Top
Sorry für die späte Antwort. Hatte es nach einigem probieren auch hin bekommen, aber dein Weg macht ein schlankeres Image. Danke nochmal
Evolutio
Evolutio 06.08.2024 um 09:34:15 Uhr
Goto Top
Dann bitte noch das Thema als erledigt markieren. face-smile