Rey*_*rPM 4 docker dockerfile docker-compose
我的结尾处有以下内容Dockerfile:
ENTRYPOINT bash -C '/usr/local/bin/setup_php_settings';'bash'
Run Code Online (Sandbox Code Playgroud)
如果我没错,/usr/local/bin/setup_php_settings每次启动容器时都会执行.如果是这样,那么我在该脚本中有一些安装内容(比如这个 ZRay),我想转移到另一个脚本,它只能在图像构建过程中执行一次.
的内容setup_php_settings(在内部消除部分ZRay)如下:
#!/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
ln -sf /usr/share/php/libzend-framework-php/Zend/ /usr/share/php/Zend
a2enmod rewrite
php5enmod mcrypt
# Apache gets grumpy about PID pre-existing files
: "${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 "$@"
Run Code Online (Sandbox Code Playgroud)
问题是,如何在图像构建期间执行这样的新脚本?用CMD?还有其他解决方法吗?
对此的正确指示是RUN.这将在图像构建上运行脚本.在你的情况下 -
RUN /usr/local/bin/setup_php_settings
CMD bash
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |