- 本文 PHP 基礎(chǔ)鏡像使用:php:7.3-apache
- 本文 Laravel 版本為:laravel:5.8.*
- 隊(duì)列和任務(wù)調(diào)度我們?cè)谙乱黄獙?xiě)
一、 準(zhǔn)備我們的 Laravel 應(yīng)用
# 運(yùn)行 mix 命令,打包 js、css、img 文件,如果沒(méi)有用到 mix 這一步可以省略
npm install
npm run production
# 安裝 composer.lock 中的依賴
composer install --ignore-platform-reqs --optimize-autoloader --no-dev
二、 準(zhǔn)備 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>
三、 準(zhǔn)備 Dockerfile 文件
FROM php:7.3-apache
LABEL maintainer="liuzhaowei55@gmail.com"
# 設(shè)置時(shí)區(qū)
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
# 訪問(wèn)端口
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
四、準(zhǔn)備 Dockerignore 文件:.dockerignore(非必需)
/node_modules
/.dockerignore
/Dockerfile
五、準(zhǔn)備鏡像入口文件:docker-entrypoint.sh(非必需)
注意一下,此文件需要執(zhí)行權(quán)限,不過(guò)此入口文件不是必須的,只是為了在應(yīng)用運(yùn)行前執(zhí)行一些緩存命令,具體可以點(diǎn)這里去文檔了解一下。
#!/usr/bin/env bash
php artisan cache:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
apache2-foreground
六、運(yùn)行鏡像
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。