资讯专栏INFORMATION COLUMN

docker实战之安装fastadmin

sumory / 1807人阅读

摘要:第二种通过数据卷挂载到容器如没有能力或者不知道配置文件各项参数,请尽可能少的加载自己的配置文件。注意目录对应数据库连接时请使用配置项中的名称,,请安装到本地配置文件含目录结构请自行创建配置配置下载安装做如下配置配置测试

Dockerfile 创建
FROM    php:fpm-alpine
MAINTAINER amor
# 更新源

# ENV PHPREDIS_VERSION="3.1.4"
# ENV PHPMECCACHED_VERSION="2.2.0"
# ENV PHPXDEBUG_VERSION="2.5.5"

# php 核心库
# docker-php 支持的扩展
# bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip

RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g" /etc/apk/repositories 
    && apk update 
    && apk add --update --no-cache 
         freetype-dev 
         libjpeg-turbo-dev 
         libmcrypt-dev 
         libpng-dev 
         postgresql-dev 
         curl-dev 
         # memcached
         # libmemcached-dev 
         # zlib-dev 
    && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" iconv mcrypt mysqli pdo pdo_mysql pdo_pgsql curl zip 
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ 
    && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" gd 
    && echo "pdo_mysql.default_socket=/run/mysqld/mysqld.sock" >> /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini

    # && pecl install redis-"$PHPREDIS_VERSION" 
    # && pecl install xdebug-"$PHPXDEBUG_VERSION" 
    # && docker-php-ext-enable redis xdebug 
    # && pecl install memcached-"$PHPMECCACHED_VERSION" 
    # && docker-php-ext-enable memcached
# 复制php.ini文件到php容器配置目录
COPY ./conf/php-fpm/php.ini /usr/local/etc/php/

CMD ["php-fpm"]

注意事项:php.ini 建议做到版本对应

docker-compose.yml 创建
php-fpm:
  build: .
  expose:
    - "9000"
  volumes:
    - /data/nutcloud/ubuntu/website/:/var/www/html/
  links:
    - mysql:mysql
    - redis:redis

mysql:
  image: mysql:latest
  ports:
    - "3306:3306"
  volumes:
    #  sql镜像数据目录
    - ./mysql/:/var/lib/mysql/:rw
  environment:
      MYSQL_DATABASE: test
      MYSQL_USER: root
      MYSQL_PASSWORD: root
      MYSQL_ROOT_PASSWORD: root
      
redis:
  image: redis:alpine
  ports:
    - "6379:6379"

nginx:
  image: nginx:alpine
  ports:
    - "80:80"
    - "443:443"
  volumes:
    - /data/nutcloud/ubuntu/website/:/var/www/html/
    - ./conf/nginx/conf.d:/etc/nginx/conf.d/:ro
    - ./log/nginx/:/var/log/nginx/:rw
  links:
    - php-fpm:fpm
    

注意事项:

代码挂载有两种方式:
第一种:在Dockerfile中直接将本地代码COPY到容器中,但是不方便调试,适合部署时使用。
第二种:通过数据卷挂载到容器

如没有能力或者不知道配置文件各项参数,请尽可能少的加载自己的配置文件。

注意目录对应

数据库连接时请使用links配置项中的mysql名称

composer,bower,git请安装到本地

nginx配置文件(含pathinfo)
server {
    listen       80;
    server_name  website.fastadminamor.com;

    #charset koi8-r;
    access_log  /var/log/nginx/website.access.log  main;
    error_log   /var/log/nginx/website.error.log;

    location / {
        root   /var/www/html/fastadmin/public;
        index  index.html index.htm index.php;

        if (!-e $request_filename) {
            rewrite  ^/(.*)$ /index.php?s=$1  last;
            break;
        }
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
        root   /var/www/html/fastadmin/public;
        fastcgi_pass   fpm:9000;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    #location ~ ^.+.php {
    #    fastcgi_pass   fpm:9000;
    #    fastcgi_index  index.php;
    #    include        fastcgi_params;
    #    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    #}

    # deny access to .htaccess files, if Apache"s document root
    # concurs with nginx"s one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}
目录结构(请自行创建)
.
├── conf
│   ├── nginx
│   │   ├── conf.d
│   │   │   └── website.fastadmin.com.conf
│   └── php-fpm
│       └── php.ini
├── docker-compose.yml
├── Dockerfile
├── log
│   ├── nginx
│   │   ├── access.log
│   │   ├── error.log
│   │   ├── website.access.log
│   │   └── website.error.log
├── mysql
phpstorm配置Docker 配置docker

下载安装docker做如下配置

配置php-cli

测试:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27115.html

相关文章

  • MongoDB干货篇之安

    摘要:干货篇之安装安装下载地址点击安装选择自定义,后选择安装路径,不过最好安装在根目录下盘,然后点解这里我安装的路径是创建文件夹在下创建一个文件夹然后在文件夹下创建两个子文件夹在文件下创建一个文档,总得来说创建了在文件夹下运行进入命令,执行以下命 MongoDB干货篇之安装 安装 下载地址 点击安装,选择自定义,后选择安装路径,不过最好安装在根目录下(C盘),然后点解next,这里我安装...

    qqlcbb 评论0 收藏0
  • angular6入门之安angular-cli

    摘要:由于之前安装的是的版本,需要卸载了,安装最新的版本。清除缓存,确保卸载干净具体参考安装最新版本安装成功后提示意思是版的需要版本最低,我之前的是的版本。先安装,去下载安装。在命令行输入检查是否安装成功。 最近听了大漠老师分享的angular6的讲解(附个链接大漠老师课程:http://www.ngfans.net/topic/2...),像是沙漠中发现了绿洲一样,决定好好学习一番,于是准...

    loonggg 评论0 收藏0
  • Flask一之安

    摘要:工具虚拟环境原因常常会有库破坏向后兼容性为每个不同项目提供一份安装。 1.工具 centOS7 Pycharm 2.virtualenv(虚拟环境) 原因:常常会有库破坏向后兼容性virtualenv 为每个不同项目提供一份 Python 安装。它并没有真正安装多个 Python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立①在系统中安装 virtualenv在 Mac ...

    Jenny_Tong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<