• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Docker部署Laravel应用的实现示例

    一、 准备我们的 Laravel 应用

    # 运行 mix 命令,打包 js、css、img 文件,如果没有用到 mix 这一步可以省略
    npm install
    npm run production
    # 安装 composer.lock 中的依赖
    composer install --ignore-platform-reqs --optimize-autoloader --no-dev

    二、 准备 Apache 配置文件 docker/000-default.conf

    <VirtualHost *:80>
     # The ServerName directive sets the request scheme, hostname and port that
     # the server uses to identify itself. This is used when creating
     # redirection URLs. In the context of virtual hosts, the ServerName
     # specifies what hostname must appear in the request's Host: header to
     # match this virtual host. For the default virtual host (this file) this
     # value is not decisive as it is used as a last resort host regardless.
     # However, you must set it for any further virtual host explicitly.
     #ServerName www.example.com
    
     ServerAdmin liuzhaowei55@gmail.com
     DocumentRoot /var/www/html/public
    
     # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
     # error, crit, alert, emerg.
     # It is also possible to configure the loglevel for particular
     # modules, e.g.
     #LogLevel info ssl:warn
    
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
    
     # For most configuration files from conf-available/, which are
     # enabled or disabled at a global level, it is possible to
     # include a line for only one particular virtual host. For example the
     # following line enables the CGI configuration for this host only
     # after it has been globally disabled with "a2disconf".
     #Include conf-available/serve-cgi-bin.conf
    </VirtualHost>
    
    

    三、 准备 Dockerfile 文件

    FROM php:7.3-apache
    
    LABEL maintainer="liuzhaowei55@gmail.com"
    
    # 设置时区
    ARG TZ=Asia/Shanghai
    ENV TZ ${TZ}
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    # 安装软件 cron
    RUN set -eux \
    
     && apt-get update \
    
     && apt-get install -y --no-install-recommends cron \
    
     && apt-get autoremove \
    
     && apt-get autoclean \
    
     && apt-get clean \
    
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
     
    # 安装拓展
    ENV PHP_EXTENSION \
    
     pdo_mysql \
    
     bcmath
    ENV PECL_EXTENSION \
    
     redis
    RUN docker-php-ext-install $PHP_EXTENSION \
    
     && pecl install $PECL_EXTENSION \
    
     && docker-php-ext-enable $PECL_EXTENSION \
    
        opcache \
    
     && a2enmod rewrite
     
    # 访问端口
    EXPOSE 80
    
    ARG APP_ENV=development
    ENV APP_ENV ${APP_ENV}
    
    COPY --chown=www-data:www-data . /var/www/html
    COPY docker/000-default.conf /etc/apache2/sites-available/000-default.conf
    WORKDIR /var/www/html
    

    四、准备 Dockerignore 文件:.dockerignore(非必需)

    /node_modules
    /.dockerignore
    /Dockerfile
    

    五、准备镜像入口文件:docker-entrypoint.sh(非必需)

    注意一下,此文件需要执行权限,不过此入口文件不是必须的,只是为了在应用运行前执行一些缓存命令,具体可以点这里去文档了解一下。

    #!/usr/bin/env bash
    
    php artisan cache:clear
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    
    apache2-foreground
    
    

    六、运行镜像

    docker run -p 80:80 .

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:Linux Windows下设置定时执行任务的方法
    下一篇:Docker部署Laravel应用实现队列&任务调度
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Docker部署Laravel应用的实现示例 Docker,部署,Laravel,应,用的,