Red de conocimiento informático - Material del sitio web - Cómo crear una imagen Docker base PHP personalizada

Cómo crear una imagen Docker base PHP personalizada

Hacer una imagen base

Selecciona la versión oficial de Ubuntu 14.04 como imagen del sistema en la que nos basamos.

DESDE ubuntu: trusty

Dado que todas las imágenes oficiales están ubicadas en servidores externos, DaoCloud proporciona un conjunto de fuentes de imágenes externas sincronizadas con las imágenes oficiales para garantizar que todos los ejemplos puedan funcionar normalmente. Si utiliza la fuente espejo de DaoCloud, indique DESDE daocloud.io/ubuntu:trusty

Establezca el mantenedor del espejo, que es equivalente al autor o editor del espejo.

MANTENEDOR Captain Dao lt; support@daocloud.iogt;

Utilice el comando RUN para llamar al administrador de paquetes apt-get para instalar los paquetes de software de los que depende el entorno PHP.

La instalación de paquetes de software dependientes es relativamente fija, por lo que esta operación debe completarse con la mayor anticipación posible, ya que esto ayudará a aumentar la tasa de reutilización de la capa de imagen.

EJECUTAR apt-get update \

apt-get -y install (

curl (

wget (

apache2 (

libapache2-mod-php5 (

php5-mysql (

php5-sqlite (

php5-gd (

php5-curl (

php-pear (

php-apc (

Utilice el comando RUN para llamar a los comandos de Linux Para configurar el servicio Apache y los parámetros PHP

RUN echo "ServerName localhost" gt;gt; /etc/apache2/apache2.conf\

Utilice el comando RUN para llamar a mkdir y colocar el código. Prepare un directorio limpio

RUN mkdir -p /app amp; rm -rf /var/www/html amp; código local al directorio y especifíquelo como el directorio de trabajo actual

COPY .

WORKDIR /app

Establezca los permisos para el script de inicio y especifique el archivo. dirección del puerto expuesta en el contenedor

Finalmente, especifique el proceso iniciado por el contenedor

EXPOSE 80.

CMD ["./start.sh". ]

Esta es la imagen base de PHP. Puedes compilarla ejecutando docker build -t my-php-base

p>

Ejecutando docker build -t my-. php-base localmente puede tardar mucho tiempo y puede fallar debido a las condiciones de la red. Recomendamos utilizar DaoCloud Accelerator y la función de creación de código en la nube de DaoCloud.

Dockerfile completo

# Ubuntu 14.04, distribución Trusty Tahr

Desde ubuntu: trusty

## En honor al Capitán Dao

## En honor al Capitán Dao

p>

MANTENEDOR Captain Dao lt; support@daocloud.iogt;

# APT instalará automáticamente las dependencias relacionadas con PHP, si necesita otras dependencias, agréguelas aquí

EJECUTAR apt-get update \

apt-get -y install (

curl (

wget (

apache2 (

libapache2-mod-php5 (

php5-mysql (

php5-sqlite (

php5-gd (

php5-curl \

php-pear \

php-apc \

# Programar después de usar el administrador de paquetes La limpieza puede reducir significativamente el tamaño de la imagen apt-get clean \

apt-get autoclean \

rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \

# Instalar Composer, que es una herramienta utilizada por PHP para gestionar dependencias

# Laravel Symfony y otros frameworks de moda dependen de él

amp;amp; curl -sS poser.org/ instalador \

| php -- --install-dir=/usr/ local/bin --filename=composer

# Archivo de configuración de Apache 2: /etc/apache2/ apache2. conf

# Establezca el nombre de servicio predeterminado para Apache 2 para evitar mensajes de inicio. La gente está nerviosa.

EJECUTAR echo "ServerName localhost" gt;gt; /etc/apache2/apache2.conf\

# Archivo de configuración de PHP: /etc/php5/apache2/php.ini

# Ajusta el orden en el que PHP procesa las variables enviadas en la Solicitud. El orden de análisis es de izquierda a derecha. Después del análisis, el nuevo valor sobrescribe el valor anterior.

# La configuración predeterminada. es EGPCS (ENV/GET/POST/ COOKIE/SERVIDOR)

amp; sed -i 's/variables_order.variables_order = "EGPCS"/g' \

/etc /php5/apache2/php.ini

# Configure el directorio donde se coloca la aplicación de forma predeterminada

EJECUTAR mkdir -p /app amp; /html amp; amp; ln -s /app /var /www/html

COPIAR .

WORKDIR /app

EJECUTAR chmod 755 ./start. sh

EXPOSE 80

CMD ["./start.sh"]