Come eseguire script durante la creazione di immagini in Docker

Ho le seguenti cose alla fine del mio Dockerfile :

 ENTRYPOINT bash -C '/usr/local/bin/setup_php_settings';'bash' 

Se non sbaglio che /usr/local/bin/setup_php_settings verranno eseguite each volta che il contenitore viene avviato. Se è così allora ho alcune cose di installazione (come questo ZRay per esempio) all'interno di questo script che vorrei passare a un altro script che sarebbe stato eseguito una sola volta sul process di costruzione di immagini, diciamo.

Il contenuto delle setup_php_settings (senza la parte ZRay) è il seguente:

 #!/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 "[email protected]" 

La domanda è, come faccio ad eseguire un nuovo script durante la creazione di immagini? Utilizzo di CMD ? Qualsiasi soluzione alternativa?

La direttiva corretta per questo è RUN . Questo eseguirebbe lo script sulla creazione di immagini. nel tuo caso –

 RUN /usr/local/bin/setup_php_settings CMD bash