Instalar magento con Docker en menos de 7 minutos
Últimamente me he vuelto fan de Docker y porque no?, si basta con pensar en tener el entorno que necesitas en un contenedor. Sin la necesidad de instalar nada en mi maquina local, esa idea me súper encanta, solo enciendes el contenedor y ya.
La idea de correr Docker es de pensar que necesitamos una maquina con suficiente memoria.
Esta configuración supone que está ejecutando Docker en una computadora con al menos 6 GB de RAM asignados a Docker. Lo que haremos sera ejecutar una configuracion creada por Mark Shust un programador y fan de Magento.
Configuración Automática
Para instalar un nuevo proyecto desde cero.
# Create your project directory then go into it:
mkdir -p ~/Sites/magento
cd $_
# Run this automated one-liner from the directory you want to install your project.
curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test 2.4.6-p2 community
El magento.test anterior define el nombre de host a utilizar y el 2.4.6-p2 define la versión de Magento a instalar. Ten en cuenta que, dado que necesitamos permisos de escritura en /etc/hosts para la resolución DNS, se te solicitará la contraseña del sistema durante la configuración.
Después de que se complete la línea de comandos anterior, deberías poder acceder a tu sitio en https://magento.test. Y ya, ya tenemos un docker donde desarrollar nuestros modulos.
Install sample data
Despues que se instale por completo el paso anterior, puede ejecutar los siguientes comandos para para istalar los datos de pruebas.
bin/magento sampledata:deploy
bin/magento setup:upgrade
Configuración Manual
El resultado es el mismo que la línea de comandos anterior. Solo reemplaza las referencias a magento.test con el nombre de host que desees utilizar.
Este paso te permite personalizar el nombre de host para tu instalación de Magento, permitiendo flexibilidad en la configuración de tu entorno de desarrollo. Puedes sustituir 'magento.test' con el nombre de host que prefieras para acceder a tu sitio Magento localmente.
Proyecto Nuevo
# Create your project directory then go into it:
mkdir -p ~/Sites/magento
cd $_
# Download the Docker Compose template:
curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash
# Download the version of Magento you want to use with:
bin/download 2.4.6-p2 community
# You can specify the version and type (community, enterprise, mageos, mageos-nightly, mageos-mirror, mageos-hypernode-mirror, or mageos-maxcluster-mirror).
# The mageos type is an alias for mageos-mirror.
# If no arguments are passed, "2.4.6-p2" and "community" are the default values used.
# or for Magento core development:
# bin/start --no-dev
# bin/setup-composer-auth
# bin/cli git clone git@github.com:magento/magento2.git .
# bin/cli git checkout 2.4-develop
# bin/composer install
# Want to install Magento <2.4.6? In bin/setup-install, replace the lines:
# --elasticsearch-host="$ES_HOST" \
# --elasticsearch-port="$ES_PORT" \
# --opensearch-host="$OPENSEARCH_HOST" \
# --opensearch-port="$OPENSEARCH_PORT" \
# --search-engine=opensearch \
# with:
# --elasticsearch-host="$OPENSEARCH_HOST" \
# --elasticsearch-port="$OPENSEARCH_PORT" \
# --search-engine=elasticsearch7 \
# Run the setup installer for Magento:
bin/setup magento.test
Abrir https://magento.test
Proyecto Existente
# Create your project directory then go into it:
mkdir -p ~/Sites/magento
cd $_
# Download the Docker Compose template:
curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash
# Take a backup of your existing database:
bin/mysqldump > ~/Sites/existing/magento.sql
# Replace with existing source code of your existing Magento instance:
cp -R ~/Sites/existing src
# or: git clone git@github.com:myrepo.git src
# Start some containers, copy files to them and then restart the containers:
bin/start --no-dev
bin/copytocontainer --all ## Initial copy will take a few minutes...
# If your vendor directory was empty, populate it with:
bin/composer install
# Import existing database:
bin/mysql < ../existing/magento.sql
# Update database connection details to use the above Docker MySQL credentials:
# Also note: creds for the MySQL server are defined at startup from env/db.env
# vi src/app/etc/env.php
# Import app-specific environment settings:
bin/magento app:config:import
# Create a DNS host entry and setup Magento base url
bin/setup-domain yoursite.test
bin/restart
Abir https://magento.test
Elasticsearch vs OpenSearch
OpenSearch se establece como el motor de búsqueda predeterminado al configurar este proyecto. Siga las instrucciones a continuación si desea utilizar Elasticsearch en su lugar:
1. Comente o elimine el contenedor de OpenSearch en los archivos compose.yaml y compose.healthcheck.yaml.
2. Descomente el contenedor de Elasticsearch en los archivos compose.yaml y compose.healthcheck.yaml.
3. Actualice el comando bin/setup-install para utilizar Elasticsearch en lugar de OpenSearch. Cambie:
--opensearch-host="$OPENSEARCH_HOST" \
--opensearch-port="$OPENSEARCH_PORT" \
por
--elasticsearch-host="$ES_HOST" \
--elasticsearch-port="$ES_PORT" \
Actualizar
Para actualizar el proyecto ala ultima versión de magento, basta con solo ejecutar el siguiente comando:
bin/update
La recomendación de Mark es mantener sus archivos de configuración de Docker en control de versiones para que pueda supervisar los cambios en los archivos después de las actualizaciones. Después de revisar las actualizaciones de código y asegurarse de que se hayan actualizado según lo previsto, ejecute bin/restart para reiniciar sus contenedores y que la nueva configuración surta efecto.
Se recomienda mantener sus archivos de configuración de Docker en un repositorio y la configuración de código de Magento en otro. Esto asegura que la ruta base de Magento esté en la parte superior de un repositorio específico, lo que facilita la administración de canalizaciones de construcción automatizadas e implementaciones, y mantiene la compatibilidad con proyectos como Magento Cloud.
Happy Coding.
En este Post aprenderemos a personalizar la tienda Magento 2. Descubre cómo incorporar JavaScript personalizado para mejorar la funcionalidad y ...
Leer más...Current version of RDBMS is not supported. Used Version: 10.6.17-MariaDB-1:10.6.17+maria~ubu2004. Supported versions: MySQL-8, MySQL-5....
Leer más...Los principales motivos para aprenderLa motivación es uno de los pilares fundamentales en el proceso de aprendizaje del desarrollo web....
Leer más...✨ Dominando el Estilo: Un Viaje al Mundo de CSSEn el universo del desarrollo web, CSS (Cascading Style Sheets) desempeña un papel funda...
Leer más...