zoukankan      html  css  js  c++  java
  • Docker Compose部署lnmp

    参考:https://github.com/micooz/docker-lnmp

    一、简介

      使用Dcoekr镜像部署lnmp(Linux、Nginx、MySQL、PHP7)。

      1.1 结构     

    app
    └── src
        └── index.php
    docker-compose.yml 
    etc
    └── localtime
    mysql
    ├── conf
    │   └── my.cnf
    └── mysqldb
    nginx
    ├── ca
    │   ├── server.crt
    │   └── server.key
    ├── conf.d
    │   └── test.conf
    └── nginx.conf
    php-fpm
    ├── Dockerfile
    ├── php-7.2.3.tar.gz
    ├── php-fpm.conf
    ├── php.ini
    ├── var
    │   ├── log
    │   │   
    │   └── run
    │     
    └── www.conf
    
    # app 静态文件
    # /etc/localtime 同步时区
    # mysqldb 数据存储
    

      

    二、部署

      2.1 php-fpm Dockerfile  

    FROM centos:latest
    MAINTAINER bigberg
    
    RUN yum -y install gcc gcc-c++ gd-devel libxml2 libxml2-devel libcurl-devel 
        openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng  
        freestyle freestyle-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel
    ADD php-7.2.3.tar.gz /tmp/
    RUN cd /tmp/php-7.2.3 
        && ./configure --prefix=/usr/local/php 
        --with-curl --with-freetype-dir --with-gd 
        --with-gettext --with-iconv-dir --with-kerberos 
        --with-libdir=lib64 --with-libxml-dir --with-mysqli 
        --with-openssl --with-pcre-regex --with-pdo-mysql 
        --with-pdo-sqlite --with-pear --with-png-dir 
        --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib 
        --with-bz2 --with-mhash --enable-fpm --enable-bcmath 
        --enable-libxml --enable-inline-optimization --enable-gd-native-ttf 
        --enable-mbregex --enable-mbstring --enable-opcache 
        --enable-pcntl --enable-shmop --enable-soap --enable-sockets 
        --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip 
        && make && make install 
        && cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 
        && chmod a+x /etc/init.d/php-fpm 
        && groupadd -g 1001 www 
        && useradd -g 1001 -u 1001 www
    
    EXPOSE 9000
    CMD ["/usr/local/php/sbin/php-fpm", "--nodaemonize"]
    Dockerfile

      2.2 docker-compose.yml

    version: '3'
    services:
      # web server
      nginx:
        image: nginx:latest
        ports:
          - "80:80"
          - "443:443"
        volumes:
          # app,挂在目录
          - ./app/src:/usr/share/nginx/html
          # ngnix configs
          - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
          - ./nginx/conf.d/:/etc/nginx/conf.d/:ro
          # certificates
          - ./nginx/ca/server.crt/:/etc/nginx/server.crt:ro
          - ./nginx/ca/server.key/:/etc/nginx/server.key:ro
          - ./etc/localtime:/etc/localtime:ro
        links:
          - php:php-cgi
    
      # PHP-FPM
      php:
        build: ./php-fpm
        volumes:
          - ./app/src:/usr/share/nginx/html
          # php.ini
          - ./php-fpm/php.ini:/usr/local/php/etc/php.ini:ro
          - ./php-fpm/php-fpm.conf:/usr/local/php/etc/php-fpm.conf:ro
          - ./php-fpm/www.conf:/usr/local/php/etc/php-fpm.d/www.conf:ro
          - ./php-fpm/var:/usr/local/php/var
          - ./etc/localtime:/etc/localtime:ro
        links:
          - mysql:mysql
        ports:
          - "9000:9000"
        stdin_open: true
        tty: true
    
      # database
      mysql:
        image: mysql:latest
        ports:
          # Allow client to access 3306
          - "3306:3306"
        volumes:
          # my.cnf
          - ./mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf
          # your data will be stored in ./mysql
          - ./mysql/mysqldb:/var/lib/mysql
          - ./etc/localtime:/etc/localtime:ro
        environment:
          - MYSQL_ROOT_PASSWORD=123456
    View Code

      2.3 构建  

    $ docker-compose up --build
    

      2.4 查看

    $ docker-compose ps
           Name                      Command               State                    Ports                  
    -------------------------------------------------------------------------------------------------------
    composelnmp_mysql_1   docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp                  
    composelnmp_nginx_1   nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
    composelnmp_php_1     /usr/local/php/sbin/php-fp ...   Up      0.0.0.0:9000->9000/tcp
    

      相关文档:https://github.com/Bigberg/docker/tree/master/compose-lnmp

  • 相关阅读:
    [洛谷P3403] 跳楼机
    [hdu4630] No Pain No Game
    django-rest-swagger 使用【转】
    Django REST framework入门 (转自中文文档)
    model补充验证钩子函数 性能优化等
    python新动态执行 文件头标识 禁止断言
    Dmango cxrf 自定义分页 缓存 session 序列化 信号量 知识点
    pytho 解析fiddler 导出的har文件代码,自动录入api
    django model 操作总结
    django FBV +CBV 视图处理方式总结
  • 原文地址:https://www.cnblogs.com/bigberg/p/8492197.html
Copyright © 2011-2022 走看看