Docker nginx php no contêiner centos7

Docker nginx php no contêiner centos7

Eu tenho que criar um Dockerfile que herda FROM centos:7 por definição e instalar nginx e php e fazer com que ele mostre um arquivo PHP.

Meu Dockerfile:

FROM centos:7
EXPOSE 80/tcp
RUN yum -y update
RUN yum -y install epel-release
RUN yum -y install nginx php php-fpm
RUN echo '<?php phpinfo();' > /var/www/demo/index.php

Meus problemas:

  1. Como posso fazer o docker entender que o nginy precisa ser iniciado quando o contêiner é criado e iniciado?
  2. Como faço para que o nginx entenda como usar PHP?

Primeiro, tudo o que sei é que isso não é possível comconstrução do docker.

Para 2. Eu queria usar tutoriais, mas estão todos errados, porque:

  • não há /etc/nginx/sites-availablediretório
  • não há nenhum arquivo chamado snippets/fastcgi-php.confem nenhum lugar para incluir no nginx.conf

Nunca trabalhei com nginx antes, então não tenho ideia por onde começar. Nenhum tutorial que encontrei funciona, porque todos esses arquivos e pastas não existem. Tudo que recebo é uma página de erro 403.

Responder1

Essa é a abordagem que eu tenho em algum momento, você tem que instalar e configurar o nginx noDockerfilee iniciá-lo a qualquer momento ao executar a janela de encaixe, defina-adocker-entrypoint.sh

Arquivo Docker:

#Install and config Nginx
RUN {\
    apt-get install nginx -y\
    rm /etc/nginx/sites-enabled/default\
    }

ADD YOUR_CONFIG_FILE /etc/nginx/sites-enabled/
RUN service nginx start


RUN PATH="$PATH:docker-entrypoint.sh"
COPY docker-entrypoint.sh /
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]

docker-entrypoint.sh:

#!/bin/bash

service nginx start
 
/bin/bash

Espero que ajude!

Responder2

Consegui manter o contêiner ativo adicionando o seguinte

CMD ["nginx", "-g", "daemon off;"]

Espero que ajude você e os outros colegas

informação relacionada