umschuelerths
Goto Top

Docker: php: entrypoint not found

Moin zusammen,

ich bastle gerade an einem Custom Image für Processwire und habe das Problem, wenn ich meinen Container Builde, dass der Web Container mit folgendem Code ausfällt:
Process | /usr/local/bin/docker-php-entrypoint: 9: exec: /init.sh: not found

Egal wie ich es drehe, habe mir auch die Doku zum Entrypoint angeschaut, aber immer wieder das selbe.

Kennt jemand das Problem?

FROM php:7.1-apache

RUN apt-get update && apt-get install -y \
        libpq-dev \
        libzip-dev \
        libicu-dev \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libwebp-dev \
        git \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ \
        --with-jpeg-dir=/usr/include/ \
        --with-png-dir=/usr/include/ \
        && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install pdo \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install mysqli \
        && docker-php-ext-install intl \
        && docker-php-ext-install zip \
        && rm -rf /var/lib/apt/lists/*

RUN apt update && apt install -y git

# apache
RUN a2enmod rewrite

# Volume
VOLUME ["/var/www/html"]  

# Init
COPY init.sh /
RUN chmod +x /init.sh
ENTRYPOINT ["init.sh"]  
CMD ["foreman","start"]  

EXPOSE 80/tcp
EXPOSE 443/tcp

Habe den Pfad auch schon auf "/usr/local/bin/" angepasst. Aber das gleiche Resultat.

LG Kevin

Content-Key: 1588983778

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

Printed on: April 18, 2024 at 16:04 o'clock

Mitglied: 148848
148848 Dec 05, 2021 updated at 09:28:25 (UTC)
Goto Top
Hallo,

gib mal noch folgenden Parameter oben in dem Dockerfile mit an:
(für den Fall dass das PHP Image einen anderen WORKDIR hat.)
WORKDIR /

Alternativ den vollen Pfad beim Entry Point hinzufügen.

Btw. dieser Befehl ist überflüssig, da git bereits in dem ersten RUN Befehl installiert wird.
RUN apt update && apt install -y git

MfG
Member: UmschuelerThs
UmschuelerThs Dec 05, 2021 updated at 13:05:45 (UTC)
Goto Top
Vielen Dank für deine Antwort, habe es jetzt geschafft.

Jetzt habe ich aber noch eine Problematik. Und zwar kann ich mich mit den hinterlegten Datenbankinformationen nicht anmelden.

      
      - MYSQL_DBHOST=db
      - MYSQL_DBPORT=3360
      - MYSQL_DBUSER=kt
      - MYSQL_DBPPASS=kevin
      - MYSQL_DBNAME=processDatas

Bekomme bei der Installation "SQLSTATE[HY000] [2002] Connection refused". Also innerhalb des Containers sollte es doch eigentlich kein Problem sein oder ?

//EDIT: Im Container bekomme ich "Access denied for user 'kt'@'192.168.112.2' (using password: YES)"
Mitglied: 148848
148848 Dec 05, 2021 at 13:08:33 (UTC)
Goto Top
Also innerhalb des Containers sollte es doch eigentlich kein Problem sein oder ?

Nur wenn du eine eigene Network Bridge angelegt hast und du dieser die beiden Container hinzugefügt hast. Mit der Default Bridge funktioniert das standardgemäß nicht.

Siehe auch:
https://docs.docker.com/network/bridge/#differences-between-user-defined ...
Member: UmschuelerThs
UmschuelerThs Dec 05, 2021 at 13:12:58 (UTC)
Goto Top
Zitat von @148848:
Nur wenn du eine eigene Network Bridge angelegt hast und du dieser die beiden Container hinzugefügt hast. Mit der Default Bridge funktioniert das standardgemäß nicht.


Also quasi "docker network create my-net" & beiden diesen zuweisen ?
Mitglied: 148848
148848 Dec 05, 2021 at 13:14:35 (UTC)
Goto Top
Zitat von @UmschuelerThs:

Zitat von @148848:
Nur wenn du eine eigene Network Bridge angelegt hast und du dieser die beiden Container hinzugefügt hast. Mit der Default Bridge funktioniert das standardgemäß nicht.


Also quasi "docker network create my-net" & beiden diesen zuweisen ?

Richtig. Steht doch so exakt in der oben verlinkten Doku drin. face-wink
Anschließend beim Erstellen des Containers mit dem Parameter "--network my-net" den Container dem Netzwerk hinzufügen.
Member: UmschuelerThs
UmschuelerThs Dec 05, 2021 updated at 13:52:37 (UTC)
Goto Top
Okay, hat alles geklappt.

Aber ich bekomme jetzt beim Versuch auf die Database zuzugreifen:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

Hier mal meine Compose:

version: '3.8'  

services:
  db:
    image: mysql:latest
    container_name: Database
    volumes:
      - ./db_data:/var/lib/mysql
    environment:
      - MYSQL_TCP_PORT=3360
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DBUSER=kt
      - MYSQL_DBPASS=kevin
    ports:
      - "3360:3360"  
    networks:
      - myweb2
  web:
    container_name: Webmaster
    build: .
    volumes:
      - ./html:/var/www/html
      - ./config:/usr/local/etc/php
    ports:
      - "80:80"  
    environment: 
      - MYSQL_DBHOST=db
      - MYSQL_DBPORT=3360
      - MYSQL_DBUSER=kt
      - MYSQL_DBPASS=kevin
      - MYSQL_DBNAME=processDatas
    depends_on:
      - db
    networks:
      - myweb2
networks:
  myweb2:
    
Mitglied: 148848
Solution 148848 Dec 05, 2021 at 14:10:26 (UTC)
Goto Top
Member: UmschuelerThs
UmschuelerThs Dec 05, 2021 at 14:31:52 (UTC)
Goto Top
Oh man, das Problem hatte ich tatsächlich schon mal vor längerer Zeit.
Danke dir schonmal für alles!

Jetzt verstehe ich einfach nicht, wieso mein Zugriff immer noch nicht funktioniert.. Daten sind alles korrekt vergeben.

"SQLSTATE[HY000] [1045] Access denied for user 'kt'@'192.168.224.3' (using password: YES)"
Mitglied: 148848
148848 Dec 05, 2021 at 14:38:26 (UTC)
Goto Top
Jetzt verstehe ich einfach nicht, wieso mein Zugriff immer noch nicht funktioniert.. Daten sind alles korrekt vergeben.

Zugangsdaten schon mal manuell getestet?
Also in den Container rein gehen und dann den Befehl: "mysql -u kt -p" eingeben.
Member: UmschuelerThs
UmschuelerThs Dec 08, 2021 at 18:19:03 (UTC)
Goto Top
Habs gelöst. Danke dir!