Hello,
Je viens de faire un dockerfile pour packager nginx avec symfony mais lorsque je tente d'éxécuter un container à partir de l'image buildée il me sort le message suivant:
usr/sbin/nginx: /usr/sbin/nginx: cannot execute binary file
Pouvez vous m'aider à résoudre ce problème svp ?
Voici le contenu de mon Dockerfile:
FROM nginx:latest
ARG DEBIAN_FRONTEND=noninteractive
ENV php_conf /etc/php/7.0/fpm/php.ini
ENV nginx_conf /etc/nginx/nginx.conf
RUN apt-get update \
&& apt-get install apt-transport-https lsb-release -y \
&& apt-get install wget curl -y \
&& wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
&& echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \
&& apt-get update \
&& apt-get install dialog apt-utils -y \
&& apt-get --no-install-recommends install -y \
&& apt-get install php7.3 php7.3-common php7.3-cli -y \
&& apt-get install php7.3-bcmath php7.3-bz2 php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-readline php7.3-xml php7.3-zip -y \
&& apt-get install php7.3-fpm -y \
&& apt-get install php-mysql -y \
&& mkdir -p /var/www/html/symfony-dev001 \
&& mkdir -p /etc/nginx/logs \
&& chown -R nginx:nginx /var/www/html/symfony-dev001 \
&& chown -R nginx:nginx /etc/nginx \
&& chmod u+x /usr/sbin/nginx \
&& apt-get install unzip -y \
&& curl --silent --show-error -o composer-setup.php https://getcomposer.org/installer \
&& EXPECTED_SIGNATURE=$(curl --silent --show-error https://composer.github.io/installer.sig) \
&& ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');") \
&& if [ "${EXPECTED_SIGNATURE}" != "${ACTUAL_SIGNATURE}" ]; then \
>&2 echo 'ERROR: Invalid composer installer signature' \
&& rm composer-setup.php \
&& exit 1 \
; fi \
&& php composer-setup.php --install-dir=/var/www/html/symfony-dev001 \
&& rm composer-setup.php \
&& cd /var/www/html/symfony-dev001 \
&& mv ./composer.phar ./composer \
&& ./composer require symfony/requirements-checker -n \
&& ./composer remove symfony/requirements-checker -n \
&& ./composer create-project symfony/website-skeleton my-project -n \
&& ./composer require symfony/apache-pack -n
COPY nginx.conf /etc/nginx/nginx.conf
ENTRYPOINT ["/bin/bash"]
CMD ["nginx", "-g", "daemon off;"]
Merci de votre aide
# ENTRYPOINT et CMD
Posté par SSHNuke0 . Évalué à 2.
Je dirais que le problème se situe à la ligne ENTRYPOINT et CMD.
Là, je pense, que tu demandes au binaire bash d’exécuter un script shell nommé nginx.
Donc, selon ton choix et ton utilisation de cette image, tu peux :
[^] # Re: ENTRYPOINT et CMD
Posté par Anonyme . Évalué à 2.
La deuxième solution est la pire de toute.
Je conseille soit de ne pas mettre d’
ENTRYPOINT
soit d’installerdumb-init
et de l’utiliser commeENTRYPOINT
:ENTRYPOINT ["dumb-init", "--"]
.Pour le reste, pourquoi ne pas utiliser les images PHP existantes ?
# Merci à vous deux
Posté par Orwell . Évalué à 1.
Hello,
Merci à vous deux pour vos réponses.
Je ne sais pas ce qu'est dumb-init mais je vais regarder. Et je vais aussi tester depuis une image PHP d'y installe nginx et symfony.
Mais d'abord je vais tester d'enlever l'entrypoint.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.