Cree un entorno de desarrollo nodejs y php basado en Docker con un clic (proyecto de código abierto)

Recientemente escribí un nuevo proyecto, implementación con un solo clic de nodejs, entorno de desarrollo php (docker, nodejs, php, nginx, mongo, mysql, redis)

Debido a que recientemente comencé a escribir proyectos nodejs y php al mismo tiempo, y también los implementé en entornos de prueba, prelanzamiento y en línea, otros colegas también necesitan el mismo entorno. Es muy engorroso construir un entorno de desarrollo completo en diferentes plataformas, por eso se nos ocurrió este proyecto.

Dirección de Github: https://github.com/wallace5303/dnnmmp

Si tiene alguna pregunta o anomalía en el uso, ayúdenos a señalarlo. ¡agradecido!

Los detalles son los siguientes:

# Nodejs basado en Docker, entorno de desarrollo php

## Dnnmmp contiene las siguientes combinaciones
>dnm(Docker + Nodejs + Mysql/MongoDB/Redis)

>dnmn(Docker+Nodejs+Mysql/MongoDB/Redis+Nginx)

>dnmp(Docker+Nginx+Mysql/MongoDB/Redis+PHP)

>Versiones de sistema compatibles: Linux, MacOs, Windows

## Funciones
> 1. Dirigido principalmente a desarrolladores de **nodejs**, desarrolladores de **php**, **operación y mantenimiento**, **front-end**

>2.Soporte **varias versiones**php, nodejs

> 3. Compatible con el archivo de configuración **OneinStack**, instrucciones de configuración completas

> 4. Admite **vincular varios nombres de dominio**

> 5. Estructura clara de archivos acoplables, archivos de configuración y archivos de registro

>6.Soporta instalación de extensión php****

> 7. El programa se basa en la última versión estable de Docker y se descarga del almacén oficial.

> 8. Actualizado continuamente, admite instalación interactiva y desatendida


## Versión de software opcional
>[almacén oficial de Docker](https://docs.docker.com/samples/)

>nginx=1.17 / 1.16

>mysql=8/5.7/5.6

>nodejs=12/10/8

>php=7.4 / 7.3 / 7.2 / 7.1 / 5.6

>mongodb=4/3

>redis=5/4

# Directorio
- [1.Pasos de instalación](#2.Pasos de instalación)
- [2.Uso de la línea de comando](#3.Uso de la línea de comando)
- [3.extensión php](#4.extensión php)
- [4. Registro](#5.Registro)
- [Apéndice 1: instalación de Docker] (#Apéndice 1: instalación de Docker)
- [Apéndice 2: Estructura de directorios] (#Apéndice 2: Estructura de directorios)
- [Apéndice 3: Colección de programadores de uso común Sitio web](#Apéndice3: Colección de sitios web comúnmente utilizados por programadores)
- [Apéndice4: Preguntas frecuentes](#Apéndice4: Preguntas frecuentes)

## 1. Pasos de instalación
1. Instale `git`, `docker` y `docker-compose` localmente (**recomendado usar la última versión: 1.23**).
   [Apéndice 1: instalación de Docker](#Apéndice 1: instalación de Docker)
2. Proyecto ``clon`:
    ```bash
    # Si no es el usuario `root`, agregue el usuario actual al grupo de usuarios ``docker`
    $ sudo gpasswd -a ventana acoplable $ {USUARIO}

    # Obtener el proyecto
    $ git clone https://github.com/wallace5303/dnnmmp.git
    ```
3. Construir y comenzar:
    ```bash
    $ cd dnnmmp

    # Construir y ejecutar (se recomienda utilizar este comando en la primera instalación para facilitar la visualización del registro impreso)
    $ docker-compose up

    # Ejecutar en segundo plano
    $ docker-compose up -d
    ```
    >Nota: si instala 360 Security Guard en Windows, salga primero; de lo contrario, el proceso de creación de la cuenta Docker puede ser interceptado durante el proceso de instalación, lo que provocará que se compartan archivos. fallar al inicio;

    >Ver la imagen generada: ```$ docker image ls```

    >Ver contenedores iniciados: ```$ docker container ls```

    >[Apéndice 4: Preguntas frecuentes](#Apéndice 4: Preguntas frecuentes)

4. Acceder en el navegador:
    [http://localhost](http://localhost),
    [https://localhost](https://localhost)

5. Comandos de uso común
```bash
# Lista de servicios: redis|mysql|mongodb|nginx|php

# Enumerar las imágenes contenidas en el archivo Compose
$ docker-compose imágenes

# Crea todos los servicios e inicia
$ docker-compose up
$ docker-compose up -d # Inicia todo en segundo plano

# Crear un servicio único
$ docker-compose up redis
$ docker-compose up redis -d # Comenzar en segundo plano

# Si el contenedor ha sido creado
# Iniciar
$ docker-compose start redis

# detener
$ docker-compose detener redis

# Reiniciar
$ docker-compose reiniciar redis

# Reconstruir
$ docker-compose compilar redis

# Eliminar
$ docker-compose rm redis
````
Para obtener más comandos de Docker, consulte:
- [docker](https://docker_practice.gitee.io/appendix/command/)
- [docker-compose](https:/ / docker_practice.gitee.io/compose/commands.html)

## 2. Uso de la línea de comando
1. El programa instalado por Docker es diferente del programa instalado directamente en el host. Si necesita usar la línea de comando, hay dos métodos, -> (1
) Método 1: ingrese al contenedor creado por Docker y ejecutar orden

-> (2) **Método 2 (recomendado)**: agregue comandos de acceso directo de bash, de la siguiente manera:

->Editar ```~/.bashrc (o ~/.zshrc)``` y agregar al final de la línea

    ```bash
    # Si el software se ha instalado en la computadora, cambie el nombre de la función
    node () {         tty=         tty -s && tty=--tty         docker run \             $tty \             --interactive \             --rm \             - -volume $ PWD:/var/www/html:rw \             --workdir /var/www/html \             dnnmmp_node nodo "$@"     }     npm () {         tty=         tty -s && tty=--tty         docker run \             $ tty \             - -interactive \             --rm \             --volume $PWD:/var/www/html:rw \             --workdir /var/www/html \



















            dnnmmp_node npm "$@"
    }
    php () {         tty=         tty -s && tty=--tty         docker run \             $tty \             --interactive \             --rm \             --volume $PWD:/var/www/html:rw \             --workdir /var/www/html \             dnnmmp_php72 php "$@"     }     compositor () {         tty=         tty -s && tty=--tty         docker run \             $tty \             --interactive \             --rm \             --user $(id -u):$(id -g) \             --volume ~/dnnmmp/composer:/tmp \



















            --volume /etc/passwd:/etc/passwd:ro \
            --volume /etc/group:/etc/group:ro \
            --volume $(pwd):/app \
            compositor "$@"
    }
    ```

->(3) Deje que el contenido modificado surta efecto
    ```
    $ source ~/.bashrc (o ~/.zshrc)
    ```
->Nota: Si el comando de solicitud no existe, vuelva a abrir la ventana del terminal. (Debido a la terminal antigua, el archivo no se recargará)

-> (4) Ver información de la versión```
    $
    nodo -v
    v10.16.0

    $npm-v
    6.9.0

    $ php -v
    PHP 7.2.19 (cli) (compilado: 28 de junio de 2019 03:58:08) (NTS)
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Tecnologías
        con Zend OPcache v7.2.19, Copyright (c) 1999-2018, por Zend Technologies

    $ compositor -v
    Composer versión 1.8.6 2019-06-11 15:03:05
    ```

2. Ingrese rápidamente al contenedor

    Los estudiantes que conocen Docker saben que a menudo necesitan ingresar al contenedor para ver el contenido y configurar el comando para ingresar al contenedor.

    Edite ```~/.bashrc (o ~/.zshrc)``` y agregue: `
    ``bash
    alias dmysql='docker exec -it dnnmmp_mysql_1 /bin/bash'
    alias dredis='docker exec -it dnnmmp_redis_1 /bin /sh'
    alias dnginx='docker exec -it dnnmmp_nginx_1 /bin/sh'
    alias dmongodb='docker exec -it dnnmmp_mongodb_1 /bin/sh'
    alias dphp72='docker exec -it dnnmmp_php72_1 /bin/bash'
    ````
    Habilitar :
    ```
    $fuente ~/.bashrc (o ~/.zshrc)
    ```

## Extensión 3.php
1. Agregue extensión: edite el archivo .env
    ```bash
    #Seleccione la extensión correspondiente de la lista de extensiones y agréguela a esta línea, separada por comas en inglés
    PHP72_EXTENSIONS=curl,opcache,redis
    ````
    > Reconstruir la imagen de PHP: docker-compose build php72 docker-compose up -d

## 4. Registre
el directorio de registro de php: ./log/php/

Directorio de registro de nginx: ./log/nginx/

Directorio de registros y datos de MySQL: ./mysql/

directorio de registro y datos de mongo: ./mongo/

## Apéndice 1: instalación de Docker

- [instalación de docker](https://docker_practice.gitee.io/install/) - [
instalación de docker- compose ](https://docker_practice.gitee.io/compose/)
  
## Apéndice 2: Estructura de directorios``` / ├── Composer Configuración y caché de Composer ├── config archivo de configuración │ ├── mongodb mongodb │ ├── Dockerfile Archivo Dockerfile │ ├── mysql mysql │ ├── Dockerfile │ ├── mysql.cnf archivo de configuración mysql │ ├── nginx nginx │ ├── conf.d │ ├── clave de certificado│ ├── localhost_https.conf https virtual host













│ ├── localhost.conf host virtual
│ ├── Dockerfile
│ ├── nginx.conf configuración de nginx
│ ├── nodo nodo
│ ├── Dockerfile
│ ├── php php
│ ├── extensiones extensiones y scripts
│ ├ ── script de instalación básica install.sh
│ ├── php56.sh script de instalación de la extensión php5.6
│ ├── php72.sh script de instalación de la extensión php7.2
│ ├── Dockerfile
│ ├── php-fpm.conf php- archivo de configuración fpm
│ ├── php.ini archivo de configuración php.ini
│ ├── redis redis
│ ├── Dockerfile
│ ├── redis.conf archivo de configuración de redis
├── directorio de datos mongo mongodb
├── directorio de registro
├── mysql Directorio de datos MySQL
├── docker-compose.yml Configuración del servicio Docker
├── Configuración del entorno .env
└─ ─
directorio de códigos www```

Supongo que te gusta

Origin blog.csdn.net/qq_32660241/article/details/97644799
Recomendado
Clasificación