我看了你的Docker github和
setup_php_settings
在线(第27行)有源/ etc / apache2 / envvars&& exec /usr/sbin / apache2 -DFOREGROUND
并且在前台运行apache2,因此它不应该以状态码0退出.
但在我看来,你的setup_php_settings包含一些奇怪的角色(当我用compose运行你的图像时)
(原件是右侧一个)weird character
我把它改成了新的线条,它对我有用.如果有帮助,请告诉我们.
如果要调试docker容器,可以在没有入口点的情况下运行它:
docker run -it yourImage bash
– 一些调查后:
当我重新启动docker容器时仍然存在一些错误 – 就像在你的情况下停止容器并在重新启动后启动一样.有问题:符号链接已经存在,而apache2有脾气暴躁的PID,所以我们需要像oficial php docker那样做
容器重启后,这是完整的setup_php_settings.
#!/bin/bash -x
set -e
PHP_ERROR_REPORTING=${PHP_ERROR_REPORTING:-"E_ALL & ~E_DEPRECATED & ~E_NOTICE"}
sed -ri 's/^display_errors\s*=\s*Off/display_errors = On/g' /etc/php5/apache2/php.ini
sed -ri 's/^display_errors\s*=\s*Off/display_errors = On/g' /etc/php5/cli/php.ini
sed -ri "s/^error_reporting\s*=.*$//g" /etc/php5/apache2/php.ini
sed -ri "s/^error_reporting\s*=.*$//g" /etc/php5/cli/php.ini
echo "error_reporting = $PHP_ERROR_REPORTING" >> /etc/php5/apache2/php.ini
echo "error_reporting = $PHP_ERROR_REPORTING" >> /etc/php5/cli/php.ini
mkdir -p /data/tmp/php/uploads
mkdir -p /data/tmp/php/sessions
mkdir -p /data/tmp/php/xdebug
chown -R www-data:www-data /data/tmp/php*
ln -sf /etc/php5/mods-available/zz-php.ini /etc/php5/apache2/conf.d/zz-php.ini
ln -sf /etc/php5/mods-available/zz-php-directories.ini /etc/php5/apache2/conf.d/zz-php-directories.ini
# Add symbolic link to get Zend out of the current install dir
ln -sf /usr/share/php/libzend-framework-php/Zend/ /usr/share/php/Zend
a2enmod rewrite
php5enmod mcrypt
# Apache gets grumpy about PID files pre-existing
: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
rm -f "$APACHE_PID_FILE"
source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND "$@"