本文以laravel项目为例,给出docker在平时开发中的使用过程。php
使用composer安装依赖html
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
部署fpmnginx
FROM php:7.2-fpm as fpm COPY . dockerlearn/ COPY --from=composer /app/vendor/ dockerlearn/vendor/
部署nginxlaravel
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 imagegit
docker build -t dockerlearn/fpm --target fpm . ``
构建nginx imagedocker
docker build -t dockerlearn/nginx --target nginx .
运行fpmshell
docker run -itd --restart always --name fpm --network mynet dockerlearn/fpm
运行nginxapp
docker run -itd --restart always --name nginx --network mynet -p 80:80 dockerlearn/nginx
因为Dockerfile的多阶段构建特性,上述三步的指令整合在一块儿以下所示。
composer
docker-compose.yml文件内容以下:ui
启动服务指令:
docker-compose up -d
具体项目可参考laravel dodcker部署示例