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-ID: 1588983778

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

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

148848
148848 05.12.2021 aktualisiert um 10:28:25 Uhr
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
UmschuelerThs
UmschuelerThs 05.12.2021 aktualisiert um 14:05:45 Uhr
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)"
148848
148848 05.12.2021 um 14:08:33 Uhr
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 ...
UmschuelerThs
UmschuelerThs 05.12.2021 um 14:12:58 Uhr
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 ?
148848
148848 05.12.2021 um 14:14:35 Uhr
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.
UmschuelerThs
UmschuelerThs 05.12.2021 aktualisiert um 14:52:37 Uhr
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:
    
148848
Lösung 148848 05.12.2021 um 15:10:26 Uhr
Goto Top
UmschuelerThs
UmschuelerThs 05.12.2021 um 15:31:52 Uhr
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)"
148848
148848 05.12.2021 um 15:38:26 Uhr
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.
UmschuelerThs
UmschuelerThs 08.12.2021 um 19:19:03 Uhr
Goto Top
Habs gelöst. Danke dir!