验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Laravel应用怎么部署

阅读:890 来源:乙速云 作者:代码code

Laravel应用怎么部署

  • 本文 php 基础镜像使用:php:7.3-apache

  • 本文 laravel 版本为:laravel:5.8.*

一、 准备我们的 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


 # 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

三、 准备 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 .
分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>