php:7.3-apache
laravel:5.8.*
# 運行 mix 命令,打包 js、css、img 文件,若是沒有用到 mix 這一步能夠省略 npm install npm run production # 安裝 composer.lock 中的依賴 composer install --ignore-platform-reqs --optimize-autoloader --no-dev
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>
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 # 設置軟件源 ARG DEBIAN_URL=mirrors.ustc.edu.cn ENV DEBIAN_URL ${DEBIAN_URL} RUN sed -i "s/deb.debian.org/$DEBIAN_URL/g" /etc/apt/sources.list ARG DEBIAN_SECURITY_URL=mirrors.ustc.edu.cn/debian-security ENV DEBIAN_SECURITY_URL ${DEBIAN_SECURITY_URL} RUN sed -i "s|security.debian.org/debian-security|$DEBIAN_SECURITY_URL|g" /etc/apt/sources.list # 安裝軟件 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
(非必需)/node_modules /.dockerignore /Dockerfile
docker-entrypoint.sh
(非必需)注意一下,此文件須要執行權限,不過此入口文件不是必須的,只是爲了在應用運行前執行一些緩存命令,具體能夠點這裏去文檔瞭解一下。php
#!/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 .