Por que não há arquivo php.ini quando instalo o PHP em um contêiner docker?

1

Estou usando docker-compose para configurar um aplicativo nginx + php-fpm mínimo, mas por algum motivo não há arquivo php.ini no contêiner docker (eu sei porque phpinfo() says Loaded Configuration File: (none) ).

Este é o meu arquivo docker-compose.yml :

web:
  image: nginx
  ports:
    - "8080:80"
  volumes:
    - ./site.conf:/etc/nginx/conf.d/site.conf
  links:
    - php

php:
  image: php:5-fpm
  volumes:
    - .root:/var/www/html:ro
  command: bash -c "apt-get update && apt-get install -y php5-mysql && php-fpm"

site.conf também é bastante simples:

server {
    index index.php;
    server_name local.myspicesage.com;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

E finalmente eu tenho o mais básico index.php possível:

<?php
echo phpinfo();

Eu realmente não quero começar do zero se não precisar. Há supostamente um arquivo php.ini incluído na imagem php:5-fpm docker? Se não, existe um arquivo genérico que eu poderia usar para começar?

    
por skb 23.03.2017 / 03:30

1 resposta

2

Você precisa adicionar o arquivo php.ini:

  1. Executar contêiner php temporário

docker run -d - nome php-tmp php: 5-fpm

  1. Copiar arquivo php

docker cp php-tmp: /usr/src/php.tar.xz.

  1. Extraia o arquivo php.ini-development ou php.ini-production para o diretório config. Exemplo:

compose_root / php / php.ini-development

  1. Adicione o volume com o php.ini no contêiner do php

    volumes:

    • .root: / var / www / html: ro
    • ./php/php.ini-development: /usr/local/etc/php/php.ini
por 25.03.2017 / 13:01