当前位置: 首页 > 后端技术 > PHP

Docker部署Laravel应用-基础应用

时间:2023-03-30 00:12:39 PHP

版本声明本文使用的PHP基础镜像:php:7.3-apache本文的Laravel版本为:laravel:5.8.*1.准备我们的Laravel应用#运行mix命令打包js、css、img文件.如果不使用mix步骤可以省略npminstallnpmrunproduction#在composer.lock中安装依赖composerinstall--ignore-platform-reqs--optimize-autoloader--no-dev2.准备Apache配置文件docker/000-default.conf#ServerName指令设置服务器用来标识自己的请求方案、主机名和端口。这在创建#重定向URL时使用。在虚拟主机的上下文中,ServerName#指定主机名必须出现在请求的Host:标头中以匹配此虚拟主机。对于默认虚拟主机(此文件),此#值不是决定性的,因为它无论如何都用作最后的主机。#但是,您必须为任何进一步的虚拟主机显式设置它。#ServerNamewww.example.comServerAdminliuzhaowei55@gmail.comDocumentRoot/var/www/html/public#可用日志级别:trace8,...,trace1,debug,info,notice,warn,#error,crit,alert,emerg.#也可以为特定的#模块配置日志级别,例如#LogLevelinfossl:warnErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.logcombined#对于来自conf-available/的大多数配置文件,#在全局级别启用或禁用,这是可能的#仅包含一个特定虚拟主机的行。例如,#以下行仅在使用“a2disconf”全局禁用此主机后启用该主机的CGI配置。#Includeconf-available/serve-cgi-bin.conf三、准备Dockerfile文件FROMphp:7.3-apacheLABELmaintainer="liuzhaowei55@gmail.com"#设置时区ARGTZ=Asia/ShanghaiENVTZ${TZ}RUNln-snf/usr/share/zoneinfo/$TZ/etc/localtime&&echo$TZ>/etc/timezone#设置软件源ARGDEBIAN_URL=mirrors.ustc.edu.cnENVDEBIAN_URL${DEBIAN_URL}RUNsed-i"s/deb.debian.org/$DEBIAN_URL/g"/etc/apt/sources.listARGDEBIAN_SECURITY_URL=mirrors.ustc.edu.cn/debian-securityENVDEBIAN_SECURITY_URL${DEBIAN_SECURITY_URL}RUNsed-i"s|security.debian.org/debian-security|$DEBIAN_SECURITY_URL|g"/etc/apt/sources.list#安装软件cronRUNset-eux\&&apt-getupdate\&&apt-getinstall-y--no-install-recommendscron\&&apt-getautoremove\&&apt-getautoclean\&&apt-getclean\&&rm-rf/var/lib/apt/lists/*/tmp/*/var/tmp/*#安装拓展ENVPHP_EXTENSION\pdo_mysql\bcmathENVPECL_EXTENSION\redisRUNdocker-php-ext-install$PHP_EXTENSION\&&peclinstall$PECL_EXTENSION\&&docker-php-ext-enable$PECL_EXTENSION\opcache\&&a2enmodrewrite#访问端口EXPOSE80ARGAPP_ENV=developmentENVAPP_ENV${APP_ENV}复制--chown=www-data:www-data。/变量/www/htmlCOPYdocker/000-default.conf/etc/apache2/sites-available/000-default.confWORKDIR/var/www/html4.准备Dockerignore文件:.dockerignore(不需要)/node_modules/.dockerignore/Dockerfile5,准备镜像入口文件:docker-entrypoint.sh(不需要)注意这个文件需要执行权限,但是这个入口点文件不是必须的,只是在应用程序运行前执行一些缓存命令,具体可以点这里看一次文档。#!/usr/bin/envbashphpartisancache:clearphpartisanconfig:cachephpartisanroute:cachephpartisanview:cacheapache2-foreground6.运行镜像dockerrun-p80:80相关阅读Docker部署Laravel应用-基础应用DockerdeploymentLaravelApplication-Queue&TaskSchedulingDockerDeploymentLaravelApplication-使用wkhtmltopdf导出PDF示例代码

猜你喜欢