Docker PHP base image with: - Apache - Php 7.4 - Php Basics Extensions - Composer
3.5K
Tabla de contenidos:
| Nombre | Contenido | Descripcion |
|---|---|---|
| php74-aisaā | Apache + Php74 + composer + Basic Extensions | Para montar apps php puro o basados en yii/laravel |
Esta imagen contiene Apache y php 7.4 con las extensiones basicas mas utilizadas. Ademas contiene composer, por lo que dentro del contenedor se puede correr comandos de composer.
La app PHP corre sobre Apache en el puerto 80. Puedes exponer este puerto si no lo usas en tu host o mapear con otro puerto.
Para este ejemplo, nuestra app php se llamara "app". Crea una carpeta vacia y dentro un archivo docker-compose.yml con el siguiente contenido:
version: '3.5'
services:
app:
image: alternativasinteligentes/php74-aisa:latest
container_name: app
ports:
- 8080:80
volumes:
- ./html:/var/www/html
Crea la carpeta con nombre "html" al mismo nivel de tu archivo docker-compose.yml y copia el contenido de tu proyecto (desde la raiz de tu proyecto a dentro de html). Si quieres crear un proyecto desde cero, puedes saltearte este paso ya que docker-compose si no existe la carpeta la creara por ti
Ejecuta el siguiente comando para iniciar el contenedor:
docker-compose up -d
Si necesias instalar dependencias de composer: Luego que el contenedor este ejecutandose, corre:
docker exec -it app composer install
Si quieres crear un subproyecto con composer:
docker exec -it app composer create-project laravel/laravel laravel-app
Accede al subproyecto en tu navegador: http://localhost:8080/laravel-app/publicā
Para correr comandos artisan o composer en tu subproyecto, especifica el path absoluto con --workdir:
docker exec -it --workdir /var/www/html/laravel-app app php artisan migrate
En el ejemplo anterior, recuerda configurar en tu archivo .env DB_HOST con el nombre del servicio de mysql y los datos de acceso que configuraste en docker-compose o lo que hayas creado mediante phpmyadmin.
Puedes asociar una base de datos de esta forma:
...
mysql:
image: mysql:latest
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
- ./mysql/datadir:/var/lib/mysql
- ./mysql/config/my.cnf:/etc/mysql/conf.d/override-config.cnf
- ./mysql/logs:/var/log/mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_PASSWORD=password
- MYSQL_USER=test
- MYSQL_DATABASE=mi_db
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin
restart: always
ports:
- 8081:80
environment:
- PMA_ARBITRARY=0
- PMA_HOST=mysql
...
Configura la cadena de conexion de tu archivo de variable de entorno utilizando el nombre de host del contenedor mysql (en el ejemplo se llama "mysql") y los datos de usuario y contraseƱa que seteaste al servicio de mysql
Para aplicar migraciones, una vez que los contenedores esten iniciados y hayas configurado tus archivos de entorno, ejecuta por ej.:
docker exec -it app php yii migrate
Si necesitas reiniciar el contenedor:
docker restart app
Para conectarte por ssh al contenedor de tu app, ejecuta en tu terminal:
docker exec -it app /bin/bash
Content type
Image
Digest
sha256:ce168fe34ā¦
Size
246.2 MB
Last updated
about 4 years ago
docker pull alternativasinteligentes/php74-aisa