Laravel用Docker部署示例
本文以laravel项目为例,给出docker在平时开发中的使用过程。
手动操作
-
使用composer安装依赖
FROM composer:1.8.6 as composer COPY . /app/ RUN cd /app \ && composer config -g repo.packagist composer https://packagist.laravel-china.org \ && composer install --no-suggest --ignore-platform-reqs \ --no-interaction --no-plugins \ --no-scripts --prefer-dist
-
部署fpm
FROM php:7.2-fpm as fpm COPY . dockerlearn/ COPY --from=composer /app/vendor/ dockerlearn/vendor/
-
部署nginx
FROM nginx:1.17 as nginx ARG APP_PATH=/var/www/html/dockerlearn/ COPY dockerlearn.conf /etc/nginx/conf.d/ COPY --from=fpm ${APP_PATH}/public ${APP_PATH}/public
-
构建fpm image
docker build -t dockerlearn/fpm --target fpm . ``
-
构建nginx image
docker build -t dockerlearn/nginx --target nginx .
-
运行fpm
docker run -itd --restart always --name fpm --network mynet dockerlearn/fpm
-
运行nginx
docker run -itd --restart always --name nginx --network mynet -p 80:80 dockerlearn/nginx
由于Dockerfile的多阶段构建特性,上述三步的指令整合在一起如下所示。
使用docker-compose部署
docker-compose.yml文件内容如下:
启动服务指令:
docker-compose up -d
具体项目可参考laravel dodcker部署示例