Docker 搭建laravel环境

将php、apache、composer打包为一个镜像

  • Dockerfile文件
    FROM php:7.4-apache
    LABEL name="bianca.lk.alex@outlook.com"
    RUN apt-get update && \
          apt-get install -y curl \
          git \
          zip \
          wget \
          vim &&\
          docker-php-ext-install pdo pdo_mysql bcmath
    RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/5.3.3.tar.gz && \
          tar xfz /tmp/redis.tar.gz && \
          rm -r /tmp/redis.tar.gz && \
          mkdir -p /usr/src/php/ext && \
          mv phpredis-5.3.3 /usr/src/php/ext/redis && \
          docker-php-ext-install redis
    RUN curl -sS https://getcomposer.org/installer | php \
      && mv composer.phar /usr/local/bin/composer \
      && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
    RUN chown -R www-data:www-data /var/www/html && a2enmod rewrite
  • 构建镜像
    docker build -t php-apache .

自定义网络

  • 采用自定义的网络,使用此网络的容器网络互通
    docker network create --subnet 172.20.0.0/24 --gateway 172.20.0.1 mynet

mysql、redis、node

  • 单独构建 mysql redis node
    # mysql
    docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql --net mynet -v /var/mysql/data/:/var/lib/mysql mysql:5.7
    # redis
    docker run -p 6379:6379 -d  --name redis --net mynet redis redis-server
    # node
    docker run -itd --name node -v /var/html/:/html  --net mynet node

php-apache与laravel

  • 启动php-apache容器
    docker run -d -p 80:80 --name php-apache -v /var/html/:/var/www/html  --net mynet php-apache
  • 下载laravel
    docker exec -it php-apache /bin/bash
    root@07b61ff870a4:/var/www/html# composer create-project laravel/laravel --prefer-dist blog .
  • 权限问题
    chown -R www-data:www-data /var/www/html/blog/storage/
    chown -R www-data:www-data /var/www/html/blog/bootstrap/
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4
playmaker
2年前 评论
cccyzloong (楼主) 2年前

都有现成的:github.com/yeszao/dnmp

2年前 评论
cccyzloong (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!